调试app由intent过滤器启动时

时间:2012-04-09 11:31:40

标签: android debugging android-intent

我通常按下Eclipse中的小“bug”图标调试我的应用程序。

但是现在我已经在我的清单中插入了这样的intent过滤器:

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

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

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

非常感谢!

3 个答案:

答案 0 :(得分:3)

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

enter image description here

答案 1 :(得分:2)

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

  1. 将此代码放在断点上方。
  2. 使用调试版本运行应用程序,而不是发布。此步骤将可调试的APK放在设备上。
  3. 杀死该应用。
  4. 通过您的Intent启动应用。应用程序将暂停此代码,并通过“等待调试程序”将您的日志垃圾邮件。
  5. 从工作室,点击“将调试程序附加到Android进程”
  6. 如果一切顺利,应用程序应停在您的断点处。
  7. 等待太长时间,这将是ANR!

        //TODO: Remove me.  Debug only!
        while (!Debug.isDebuggerConnected()) {
            try {
                Log.d(TAG, "Waiting for debugger");
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    

答案 2 :(得分:1)

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