今天工作时,似乎突然间我无法再调试我们的应用程序了。有趣的是,如果我正常运行应用程序它会工作得很好。为了澄清,我整个上午都在运行调试器而没有发生任何事故(除了偶尔的故障或崩溃)。然后在午餐后它开始失败100%的时间。当然,我一整天都在做出改变,因此“似乎”在上面。所以,这里有一些相关的细节:
Android Studio 2。1。1(2016年4月28日版)
此应用程序以登录屏幕启动。然后,用户必须使用呼叫外部服务的用户名/密码进行身份验证。
我可以进入登录界面,但应用程序将始终在身份验证过程中的同一点崩溃。
这是堆栈跟踪:
05-24 14:56:25.764 2399-2745/com.mycomp.myapp.test E/Crashlytics: Failed to execute task.
java.lang.InterruptedException
at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:375)
at java.util.concurrent.FutureTask.get(FutureTask.java:162)
at com.crashlytics.android.v.a(SourceFile:1936)
at com.crashlytics.android.v.uncaughtException(SourceFile:307)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
05-24 14:56:25.764 2399-2745/com.mycomp.myapp.test E/AndroidRuntime: FATAL EXCEPTION: pool-5-thread-1
Process: com.mycomp.myapp.test, PID: 2399
java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:1991)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2025)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:820)
以下是我试图解决的问题:
到目前为止,没有任何作用。但是,我不能强调,如果我只是运行应用程序(播放按钮,^ R)并在同一台设备上运行它,它工作得很好!登录没有问题。所以,它似乎不是代码问题。
此外,如果您查看堆栈跟踪,则没有任何内容指向我们的项目。
有什么想法吗?
答案 0 :(得分:37)
好吧,我明白了。事实证明我有一个" Java Field Watchpoint"选择"暂停线程"作为选择之一。请参阅随附的屏幕截图以获取说明。外卖:
正如你所看到的,我一直在使用一堆断点,所以它被埋在窗口里,我没有看到它。
我仍然不知道它是如何设定的。我前一天一直在使用手表,但我已将它们全部删除了。此外,我很确定我没有打开它,所以它如何在一天中间神秘地停止工作仍然是一个谜。另外,我当然不会检查"暂停线程"靠我自己某种默认设置?
点仍然存在 - 如果您看到奇怪的堆栈跟踪,最好检查所有断点和监视点设置。
我希望这有助于某人。
答案 1 :(得分:22)
Instant Run似乎是罪魁祸首(至少在我的Android Studio 2.3.3案例中)。请尝试禁用“即时运行”,而不是禁用断点。一旦我这样做,断点不再导致崩溃。
有关详细信息,请参阅Android app crashes when launched in debug mode。在Mac OS X下,我通过转到Android Studio->偏好设置>构建,执行,部署 - > InstantRun并取消选中“启用即时运行到热插拔...”来禁用“即时运行”。
“Instant Run有问题吗?”消息显示在设置面板中。我点击“重新启用并激活额外的日志记录”,重现崩溃,然后立即报告使用“帮助 - 报告即时运行问题...”选项。
答案 2 :(得分:0)
关闭即时运行,它将解决所有问题
答案 3 :(得分:0)
我更改了模拟器(从Android 8.1更改为Android 7.0),但再也没有遇到这种情况。我为此浪费了3个小时。我希望我可以通过建议来帮助某人。