2013-11-20 2 views
0

Приложение разбилось, но ACRA не подходит. Heres log:ACRA не работает

11-20 16:50:19.119: ERROR/ACRA(23345): ACRA caught a RuntimeException exception for com.buggyproject. Building report. 
11-20 16:50:19.539: ERROR/ACRA(23345): ACRA caught a RuntimeException exception for com.buggyproject. Building report. 
11-20 16:50:19.909: ERROR/ACRA(23345): com.buggyproject fatal error : An error occured while executing doInBackground() 
     java.lang.RuntimeException: An error occured while executing doInBackground() 
     at android.os.AsyncTask$3.done(AsyncTask.java:299) 
     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 
     at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
     at java.lang.Thread.run(Thread.java:856) 
     Caused by: java.lang.NullPointerException 
     at libcore.net.UriCodec.encode(UriCodec.java:132) 
     at java.net.URLEncoder.encode(URLEncoder.java:57) 
     at com.buggyproject.Api$UpdateUI.doInBackground(Api.java:309) 
     at com.buggyproject.Api$UpdateUI.doInBackground(Api.java:296) 
     at android.os.AsyncTask$2.call(AsyncTask.java:287) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
     ... 5 more 

Почему это не сработало? Не может ли он обрабатывать исключение NullPointerException?

Update Вот фрагмент кода с функцией doInBackground класса AsyncTask где NullPointExcetion возводит

@Override 
protected String doInBackground(String... params) { 
    try{ 
     String path = String.format("update/%s/%s/", 
       URLEncoder.encode(params[0], "UTF-8"), 
       URLEncoder.encode(params[1], "UTF-8")); 

     page = api.getPage(server.getAddress(), path); 
     return page; 
    } catch (UnsupportedEncodingException e){ 
     Log.d(TAG_NAME, "Error URL encoding " + e.toString()); 
    } 
    return null; 
} 

Я думаю proble что Params [0] или PARAMS [1] или оба равны нулю, но почему ACRA не появился?

Update2

Другая ошибка, я заметил

channel '41f00be8 com.buggyproject/org.acra.CrashReportDialog (server)' ~ Channel is unrecoverably broken and will be disposed! 
+1

Post com.buggyproject.Api класс. – user987339

+0

@ user987339 Я обновил свой вопрос – KennyPowers

+0

Прежде чем использовать оба URLEncoder.encode, проверьте, не являются ли параметры [0] и params [1] не равными нулю. – gahfy

ответ

0

Это легче заставить отправки. Если вы хотите использовать acra с факультативно вы также можете использовать консоль разработчика Google Play.

Таким образом, для решения

  • добавил ли разрешение Интернет?
  • Является ли приложение установленным классом, расширяющим приложение?
  • Правильный ли путь?

Проверьте эти вещи. Если acra не показывает, это потому, что класс приложения, инициализирующий ACRA, не активирован. Это в вашем манифесте

0

Проверьте, была ли запущена какая-либо задача/услуга в onCreate или onStart методах.

В official github ACRA docs Я нашел:

NB, если вы начинаете услуги или другие задачи в Application.onCreate, вы должны проверить, чтобы увидеть, если текущий процесс является: Acra процесс. Если это так, вы, вероятно, не хотите запускать свою службу.

Смежные вопросы