所以我刚刚更新到Android Studio 2.2,而且我在设备上运行应用时出现问题。似乎发生的事情是,当我尝试调试我的应用程序时,现在有两个独立的调试器正在运行。其中一个是优秀的旧Java调试器,另一个是我认为的LLDB调试器。
我的应用有一个启动画面,显示为应用中的第一个Activity
。之前发生的事情是,在实际的介绍屏幕出现之前,启动画面只会显示1秒左右。在我将Android Studio更新到2.2版之后,在启动画面消失之前需要大约一分钟。
我给SplashScreenActivity.onCreate()
添加了断点,看看是否一切正常。启动应用程序后,它会等待一段时间LLDB调试器停止并发出SIGURG信号。我点击恢复程序再次点击相同的信号。这种情况发生了7-8次,之后SplashScreenActivity.onCreate()
中的断点被Java调试器命中。在此之后,应用程序保持正常工作。
我不知道它是否有帮助,但LLDB调试器的控制台是这样的:
09/26 00:19:32: Launching app
No apk changes detected since last installation, skipping installation of D:\Documents\SourceTree\autocolorsplash-android\app\build\outputs\apk\app-debug.apk
$ adb shell am force-stop com.kayimapps.autocolorsplash_android
$ adb shell am start -n "com.kayimapps.autocolorsplash_android/com.kayimapps.autocolorsplash_android.activities.SplashScreenActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Waiting for application to come online: com.kayimapps.autocolorsplash_android | com.kayimapps.autocolorsplash_android.test
Waiting for application to come online: com.kayimapps.autocolorsplash_android | com.kayimapps.autocolorsplash_android.test
Connecting to com.kayimapps.autocolorsplash_android
Now Launching Native Debug Session
Starting LLDB server: /data/data/com.kayimapps.autocolorsplash_android/lldb/bin/start_lldb_server.sh /data/data/com.kayimapps.autocolorsplash_android/lldb unix-abstract /data/data/com.kayimapps.autocolorsplash_android/lldb/tmp platform-1474838375380.sock "lldb process:gdb-remote packets"
Debugger attached to process 927
Signal: SIGURG (signal SIGURG)
Signal: SIGURG (signal SIGURG)
Signal: SIGURG (signal SIGURG)
Signal: SIGURG (signal SIGURG)
Signal: SIGURG (signal SIGURG)
Signal: SIGURG (signal SIGURG)
Signal: SIGURG (signal SIGURG)
Signal: SIGURG (signal SIGURG)
我在我的应用程序中没有使用任何C ++,除了一些编译过的OpenCV代码,我根本没有触及过。我只使用OpenCV的Java包装器。
调试器帧在第一个SIGURG信号之后如下所示:
我不知道是否有任何其他有关情况的相关信息,因为我不知道发生了什么。请告诉我这是否像您之前看到的那样,需要一些额外的信息。
答案 0 :(得分:9)
所以我无法找到为什么LLDB让我等了大约一分钟,但我发现完全禁用LLDB的地方。我不知道它是否存在于Android Studio 2.2之前,但您可以转到Run-> Edit Configurations,然后从Debugger窗格中将Debug Type设置为Java而不是Auto。
这会禁用LLDB并将其恢复到2.2之前的状态。但是,首次通过adb启动应用程序仍会导致启动画面停留一段时间。