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();