今天工作的时候,我好像突然不能再调试我们的应用程序了。有趣的是,如果我正常运行该应用程序,它会正常工作。澄清一下,我整个早上都在运行调试器,没有发生任何事故(除了偶尔的故障或崩溃)。然后午饭后它开始失败 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)
以下是我尝试解决的问题:
- 退出我的所有更改(git stash)
- 从手机卸载应用程序
- 做一个干净的构建
- 做一个 Gradle 项目重新同步
- 删除所有断点(真的吗?)
- 好的,我一直在添加断点以查看事情是如何工作的,所以谁知道呢?那里有一些优点。
- 重启安卓工作室!(将其关闭并重新打开)
到目前为止,没有任何效果。但是,我怎么强调都不过分,如果我只是运行应用程序(播放按钮,^R)并在同一台设备上运行它,它就可以正常工作!登录没有问题。因此,这似乎不是代码问题。
此外,如果您查看堆栈跟踪,则没有任何内容指向我们的项目。
有任何想法吗?