开发者社区> 问答> 正文

在4.x的手机系统上可能出现的崩溃问题的解决方法



问题


在4.x的系统上出现IllegalAccessException:class ref in pre-verified异常,应用崩溃

问题原因


这个是由于Sophix的冷启动方式热修复是完整dex修复,所以会出现新dex中的类和老dex中的类冲突,所以要在Sophix初始化前避免加载原有apk中的类,而对于4.x版本的系统,如果在Sophix初始化之前有加载原有apk中的类,则会影响修复的过程,造成崩溃

解决方案


Sophix初始化在Application最前面,同时在初始化前的代码都要使用系统类而不使用自定义类(如自定义的logutil等)。
具体就是把initialize写到attachBaseContext里面,但query还是在onCreat的最前面;如果有用到MultiDex,直接继承Application,在attachBaseContext里写MultiDex.install(base),然后在onCreat的最前面initialize和query,如果还会出现这个崩溃,把initialize写到attachBaseContext的MultiDex.install(base)后面,但query还是在onCreat的最前面。仍然解决不了的可到钉钉群里寻求支持。

  • 下载 : 钉钉客户端
  • 搜索热修复Android支持群号:11734260

展开
收起
猫饭先生 2017-10-25 09:35:00 1315 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Tangram 立即下载
360手机卫士 插件化漫谈 立即下载
手机京东Crash自动分析处理系统 立即下载

相关实验场景

更多