0

应用程序崩溃了,但 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 吗?

更新 这是带有 AsyncTask 类的 doInBackground 函数的代码片段,其中 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;
}

我认为问题在于 params[0] 或 params[1] 或两者都为空,但为什么 ACRA 没有出现?

更新2

我注意到的另一个错误

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

2 回答 2

0

检查它是否在onCreateonStart方法中启动了某些任务/服务。

官方 github ACRA 文档中,我发现了这个:

注意,如果您在 Application.onCreate 中启动服务或其他任务,您应该测试当前进程是否为 :acra 进程。如果是,那么您可能不想启动您的服务。

于 2017-04-04T13:25:25.003 回答
0

强制发送更容易。如果您想使用带有可选发送的 acra,您不妨使用 Google Play 开发者控制台。

所以对于解决方案

  • 是否添加了互联网权限?
  • 应用程序是否设置为扩展应用程序的类?
  • 路径是否正确?

检查那些东西。如果 acra 没有显示,那是因为初始化 ACRA 的应用程序类没有被激活。这是在您的清单中

于 2016-07-15T14:22:13.627 回答