6

我通常通过按 Eclipse 中的小“错误”图标来调试我的应用程序。

但现在我在清单中插入了这样的意图过滤器:

 <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />

当插入 USB 电缆时,应用程序现在会自动启动 - 我无法再调试它了。不再有任何断点处的停止。

通过意图启动时,我将如何调试应用程序?

非常感谢!

4

3 回答 3

6

我有一个 Nexus 6P,在我的开发人员选项中有一个“等待调试器”切换。这对我有用。您还必须选择您的应用程序作为要调试的应用程序。“选择调试应用程序”。当然,您必须安装应用程序的可调试版本。只需在 Eclipse 或 Android Studio 中进行调试启动。

在此处输入图像描述

于 2018-01-06T17:48:09.887 回答
2

我遇到了这个问题,我用下面的代码解决了这个问题。该代码基于先前的答案。(感谢您的想法!)

  1. 将此代码放在断点之上。
  2. 使用调试变体运行应用程序,而不是发布。此步骤在设备上放置一个可调试的 APK。
  3. 杀死应用程序。
  4. 通过您的 Intent 启动应用程序。该应用程序将在此代码处暂停,并使用“等待调试器”向您的日志发送垃圾邮件。
  5. 在工作室中,单击“将调试器附加到 Android 进程”
  6. 如果一切顺利,应用程序应该在您的断点处停止。

等待太久,它会 ANR!

    //TODO: Remove me.  Debug only!
    while (!Debug.isDebuggerConnected()) {
        try {
            Log.d(TAG, "Waiting for debugger");
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
于 2016-10-19T21:37:06.380 回答
1

解决方案是这样的,由于 Intent 过滤器启动,在应用程序启动时延迟。然后只要应用程序在那里可见就运行到调试窗口,附加应用程序进程和中提琴,您可以像以前一样调试应用程序

于 2013-01-26T22:08:46.327 回答