Android即时应用:如何调试即时应用?

时间:2017-06-01 16:07:34

标签: android android-studio android-debug android-instant-apps

当我在Android Studio上调试我的即时应用程序时,调试器会附加到即时应用程序进程并暂停大多数断点处的执行。但是,它似乎忽略了我的主要活动onCreate方法的断点。我试过" Debug"和#34;将调试程序附加到Android进程"选项。我错过了什么?

2 个答案:

答案 0 :(得分:12)

有关如何使用Android Studio调试程序调试Android应用程序的基本信息,请访问Developer Documentation Debug Your App   

在调试即时应用时,Android Studio调试器通常正常工作。但是,您会注意到调试器在应用程序生命周期的早期(例如Application.onCreateActivity.onCreate)在运行Android N及更低版本的设备上无法在断点处停止。

当您的即时应用启动并运行时,它会在您应用的套餐名称下运行。但是,在应用程序启动期间,它在临时程序包名称下运行时会有一段很短的时间,格式如下:

com.google.android.instantapps.supervisor.isolated[0-9]+

此临时名称由运行时分配。由于Android Studio不知道此名称,因此调试器不会附加到此进程。

解决方法是找出此临时名称并使用adb将应用程序设置为调试。这可以通过在运行应用程序之前在终端中运行以下命令来完成。它将在您的应用程序启动时打印出该名称。

=> adb shell 'while true; do ps | grep com.google.android.instantapps.supervisor.isolated; sleep 1; done'
u0_i6     31908 630   1121664 29888          0 00ea57eed4 R com.google.android.instantapps.supervisor.isolated15

确定软件包名称后,使用以下命令暂停并使您的即时应用程序进程等待调试程序。然后正常附加调试器,但通过单击“显示所有进程”在“选择进程”窗口中选择临时进程名称。

=> adb shell am set-debug-app -w --persistent com.google.android.instantapps.supervisor.isolated15

答案 1 :(得分:0)

我最近在调试即时应用程序时也遇到了问题。 有多个日志消息

“正在等待应用程序启动调试服务器”

在调试窗口中,并经过多次重试

“无法连接到远程进程。正在终止调试会话。”

我解决问题的方法是 通过使用Android Studio “运行” 菜单中的“ 附加到处理” 选项。