当前位置:   article > 正文

DexClassLoader 刷新问题_加固后dexclassloader失败的原因

加固后dexclassloader失败的原因

遇到一个坑,

复现条件:

1、DexClassLoader加载上某个APK或jar

2、更新上面的APK或JAR,再次通过DexClassLoader 加载(文件名和dex释放路径保持和上次一致)

3、显式调用GC或系统触发GC时闪退


存在于4.X的系统中。


产生原因,当DexClassLoader实例化后,后将释放后的dex加载到dexpathlist,如存在则会进行对比,当两次加载的同路径、同文件名dex文件内容不一致时,则会打印警告Log,通知dex bad,进而gc时发生错误。


解决方案,在进程生命周期内如需要更新dex,请将源APK或JAR命名成不一样的,不要简单覆盖。或将dex输出目录设为不同。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/865834
推荐阅读
相关标签
  

闽ICP备14008679号