#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
, а затем запустите…. Я решил это таким образом…….