InterruptedException при отладке приложения для Android
При отладке в Android Studio в некоторых сценариях приложение вылетает со следующим исключением:
08-27 18:01:25.144 19241-24656/? E/AndroidRuntime﹕ FATAL EXCEPTION: pool-7-thread-1
Process: com.callsign.android.dev, PID: 19241
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)
Это происходит
- только при отладке
- только на определенных устройствах (т.е. Moto G, Nexus 4)
Это не происходит, например, на Oneplus One или Xperia L.
Я не нашел никакой другой информации, которая помогла бы нам идентифицировать проблему. Кто-нибудь еще сталкивается с этой проблемой?
Ответы
Ответ 1
Попробуйте задачу Async или для вашей части кода.
"AbstractQueuedSynchronizer"
выглядит проблема синхронизации.
public class Task extends AsyncTask<Void, Void, Void>
{
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected Void doInBackground(Void... paths) {
//here your code (approx from line 400 to 850)
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
}
}
для вызова Задача при нажатии кнопки или из любого другого метода
new Task().execute();