dexcachelist导致anr

来源:互联网 发布:windows找不到某个exe 编辑:程序博客网 时间:2024/06/05 16:34

先把anr日志拿出来:
adb pull data/anr/trace.txt .

然后检查所有有包名的地方,检查时神门问题:我的分析日志trace.txt中是这样写的:
这里写图片描述
每个多了个-1,很费解

各种清理,直接rebuild project和clean project,然后有改了导入库方式,感觉都不是本质原因。检查git发现库的部分没有改过

这里写图片描述
然后再这个图中的build(project下,不是module下),发现多了一个文件夹= =忘了叫啥,反正就是除了这两个的第三个文件夹。

里面两层有个cache文件,各种dex,我改的要疯,后面弄了半天,发现还是不行,现在新的解决方式步骤是:
1.在teminal刷新依赖库,执行:gradlew –refresh-dependencies
2.在teminal清所有缓存,执行:gradlew clean
3.在app的gradle的android中加入:
dexOptions {
javaMaxHeapSize “4g”
preDexLibraries = false
}
这样终于不生成那个奇葩cache…,当然,如果你发现那个cache是文件重复而非以class.dex结尾,那还是可以改一下的。
4.如果cache还在先手动删掉整个文件夹,让build下回到两个文件夹即图示状态,然后重新gradlew clean,再运行项目,如果没有生成这个cache就成功了。

这个我试了三个项目,有一个就cache不会自动清,只好手动,为了验证是否会生成(不clean有时候生成,有时候不生成,有时第二天又生成,无语,不方便测试),所以又gradlew clean。

原创粉丝点击