Как решить ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ java.lang.RuntimeException: произошла ошибка при выполнении doInBackground()

#android #synchronization #fatal-error

#Android #синхронизация #фатальная ошибка

Вопрос:

я разрабатываю похожее приложение, связанное с чатом, я использую синхронный класс backgrouund, несколько раз появляется принудительное закрытие, я использую фоновые веб-сервисы .net, я получаю сообщения и изображения, процесс фоновой загрузки которых обновляется в пользовательском интерфейсе

ошибка заключается в:

 05-17 05:24:17.925: ERROR/AndroidRuntime(1618): FATAL EXCEPTION: AsyncTask #1
05-17 05:24:17.925: ERROR/AndroidRuntime(1618): java.lang.RuntimeException: An error occured while executing doInBackground()
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     at android.os.AsyncTask$3.done(AsyncTask.java:200)
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     at java.lang.Thread.run(Thread.java:1096)
05-17 05:24:17.925: ERROR/AndroidRuntime(1618): Caused by: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     at java.util.ArrayList.get(ArrayList.java:311)
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     at com.fitzgeraldsoftware.shout.presentationLayer.Shout$LatestMessage.doInBackground(Shout.java:1923)
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
05-17 05:24:17.925: ERROR/AndroidRuntime(1618):     ... 4 more
05-17 05:24:17.956: WARN/ActivityManager(1105):   Force finishing activity com.fitzgeraldsoftware.shout.presentationLayer/.Shout
05-17 05:24:18.097: WARN/IInputConnectionWrapper(1618): showStatusIcon on inactive InputConnection
  

Комментарии:

1. Опубликовать код, подверженный ошибкам

2. Как выглядит код в строке 1923 в Shout.java ?

3. я понял, спасибо за ценный ответ

Ответ №1:

Я сталкиваюсь с той же проблемой, и почти я потратил на это полдня, наконец, решение было закрыто для вас eclipse и ПК / ноутбука, перезапустите его и запустите приложение. Все работает нормально.

Комментарии:

1. привет, пакшахин, вы можете синхронизировать потоки, эта проблема решена, я отключаю какой-то пользовательский интерфейс, на этот раз произошла ошибка, вы можете использовать синхронизированные потоки, которые запускаются один за другим, это лучший способ

Ответ №2:

Вы ArrayIndexOutOfBoundsException выбросили. Проверьте код, выполненный в 1923 в Shout.java , на доступ к массиву. Исключение выдается, если вы пытаетесь прочитать элемент по индексу, который больше размера массива (1). Например, она возникает, если:

 String [] strings = new String[0];
strings[0];// exception thrown!
  

Ответ №3:

Попробуйте Project -> Clean , а затем запустите…. Я решил это таким образом…….