Michael Kolakowski
Michael Kolakowski

Reputation: 805

Android Studio Debugger Application Crashes with InterruptedException

While working today, it seemed as if suddenly I could no longer debug our application. The funny thing is, if I ran the app normally it would work just fine. To clarify, I was running the debugger all morning without incident (apart from the occasional glitch or crash). Then after lunch it began failing 100% of the time. Of course, I've been making changes all day, hence the "it seems" above. So, here are some relevant details:

Here is the stack trace:

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)

Here are the things I've tried to fix it:

And so far, nothing works. However, I can't emphasize enough that if I just run the app (play button, ^R) and run it on the very same device, it works just fine! Log in with no problem. So, it doesn't seem to be a code problem.

Furthermore, if you look at the stack trace, there is nothing pointing to our project.

Any ideas?

Upvotes: 27

Views: 30454

Answers (5)

Priyantha Fernando
Priyantha Fernando

Reputation: 91

I had the same issue today. And finally after several hours of trying to find a solution got the reason. I am currently working with multiple threads, and the breakpoints were set to "all" instead of "thread". I'm not certain, but it seemed like it somehow interfered when an activity is changed and blocked the creation of the new activity. Once I switched it to "thread", NO MORE ERRORS!enter image description here

Upvotes: 0

Kim Montano
Kim Montano

Reputation: 2285

I changed emulators (from Android 8.1 to Android 7.0) and did not experience this again. I wasted 3 hours on this. I hope I help someone by suggesting this.

Upvotes: 3

Eranga Gamagedara
Eranga Gamagedara

Reputation: 536

Turn off instant run, It'll fix all the issues

Upvotes: 3

slogan621
slogan621

Reputation: 1380

Instant Run appears to be the culprit (at least in my case with Android Studio 2.3.3). Instead of disabling breakpoints, try disabling Instant Run. Once I did this, breakpoints ceased to cause crashes.

See Android app crashes when launched in debug mode for details. Under Mac OS X, I disabled Instant Run by going to Android Studio->Preferences->Build, Execution, Deployment->InstantRun and unchecking "Enable Instant Run to hot swap ...".

There is a "Having trouble with Instant Run?" message displayed in the settings panel. I clicked on "Re-enable and activate extra logging", reproduced the crash, and then immediately reported using the "Help - Report Instant Run Issue..." option as they requested.

Upvotes: 24

Michael Kolakowski
Michael Kolakowski

Reputation: 805

Well, I figured it out. It turns out I had a "Java Field Watchpoint" selected with "Suspend Thread" as one of the options. See the attached screenshot for clarification. Takeaways:

As you can see, I had been using a bunch of breakpoints, so it got buried in the window and I didn't see it.

I still don't know how it got set. I had been using watches on a previous day, but I had deleted them all. Furthermore, I'm quite certain I didn't turn it on, so how it mysteriously stopped working in the middle of the day is still a mystery. Also, I certainly wouldn't have checked "suspend thread" on my own. Some sort of default setting?

Point remains - if you are seeing weird stack traces, it might be good to check all the breakpoints and watch point settings.

I hope this helps someone.

Screenshot of BreakPoint Window in Android Studio

Upvotes: 45

Related Questions