在我的开发者控制台中,偶尔会发现以下崩溃时出现峰值:
java.lang.IllegalArgumentException
org.chromium.components.minidump_uploader.CrashFileManager.<init>
java.lang.RuntimeException:
at android.os.AsyncTask$3.done (AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:354)
at java.util.concurrent.FutureTask.setException (FutureTask.java:223)
at java.util.concurrent.FutureTask.run (FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run (AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:588)
at java.lang.Thread.run (Thread.java:818)
Caused by: java.lang.IllegalArgumentException:
at org.chromium.components.minidump_uploader.CrashFileManager.<init> (CrashFileManager.java:43)
at org.chromium.android_webview.AwBrowserProcess$1.doInBackground (AwBrowserProcess.java:7)
at android.os.AsyncTask$2.call (AsyncTask.java:295)
at java.util.concurrent.FutureTask.run (FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run (AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:588)
at java.lang.Thread.run (Thread.java:818)
这超出了我的控制范围吗?上述崩溃报告中没有一个直接与我项目中的任何方法或类有关,所以我不知道在哪里查看。此外,我几周都没有看到这些错误,然后突然出现了几个小时的峰值,然后又回到了无关:
尖峰与我认识到的任何东西都不一致,例如新版本发布。这告诉我,我无能为力,尽管它很烦人,因为它似乎确实反映了Android Vitals的统计数据。此外,崩溃来自各种Android版本和设备。
编辑,自从我几天前提交此文件以来,此类别中没有进一步的崩溃报告:
EDIT2 ...现在我看到了更多这个错误的实例...我还没有在这个时间框架内发布任何更新到我的应用程序,所以我没有破坏(而且它真的是 影响我的Android Vitals统计信息):
EDIT3 ...... aaargh!现在看一下(现在几个月没有发布应用程序的新版本......所以我没有做过):
答案 0 :(得分:0)
我找到了有关此问题的解决方案: 检查你的代码,可能是你在网络请求之前或之后擦除catch目录或文件并执行任何文件过程,如make a zip,提取zip或压缩,解压缩,这意味着你正在使用任何文件进程,这是临时捕获内存所以,那个时候你调用任何擦除捕获内存然后这个类型的问题创建。
在我的申请中。我使用下面的代码来删除catch,所以我遇到了这种类型的问题。
private void deleteCache(Context context) {
try {
File dir = context.getCacheDir();
deleteDir(dir);
} catch (Exception ignore) {
}
}
private boolean deleteDir(File dir) {
if (dir != null && dir.isDirectory()) {
String[] children = dir.list();
for (String aChildren : children) {
boolean success = deleteDir(new File(dir, aChildren));
if (!success) {
return false;
}
}
return dir.delete();
} else
return dir != null && dir.isFile() && dir.delete();
}