[英]Android Instant Apps: How to debug an instant app?
当我在Android Studio上调试我的即时应用程序时,调试器会附加到即时应用程序进程并暂停大多数断点处的执行。 但是它似乎忽略了我的主要活动的onCreate方法中的断点。 我尝试过“调试”和“将调试器附加到Android进程”选项。 我错过了什么?
有关如何使用Android Studio调试器调试Android应用程序的基本信息,请参阅开发人员文档调试您的应用程序 。
在调试即时应用程序时,Android Studio调试器通常在大多数情况下正常工作。 但是,您会注意到,在运行Android N及更低版本的设备上,调试器将无法在应用程序生命周期的早期(例如Application.onCreate
或Activity.onCreate
)停止。
当您的即时应用程序启动并运行时,它将在您的应用程序包名称下运行。 但是,在应用程序启动期间,它在临时程序包名称下运行时会有一段很短的时间,格式如下:
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
我最近也调试了即时应用程序的问题。 有多个日志消息
“等待应用程序启动调试服务器”
在调试窗口和几次重审后
“无法连接到远程进程。中止调试会话。”
我解决问题的方法是使用Android studio “运行”菜单中的“ 附加到处理”选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.