Code Bye

关于android热修复中的CLASS_ISPREVERIFIED

本人写了一个demo,类A的构造函数里引用到了类B,并且调用了类B的一个函数打印了一段信息,然后本人修改类B并且把它的class文件单独用dx打包成一个补丁dex文件放到应用的私有目录下,并在application的attachBaseContext方法里把这个补丁加载进系统默认ClassLoader的dexPathList的element数组的第一个位置,应用运行时能够正常打印补丁里修改后的内容,并没有出现网上资料所说的CLASS_ISPREVERIFIED的问题这是为什么?是原因是本人使用的是模拟器?
解决方案

60

1、apk是在Android studio 开启instant run后, 编译出来的debug版? instant run可能影响结果。编译release版试下。
2、A类本身就有引用其它未在本dex的类么,那样A本身就不会打上preverified标记了。
///

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于android热修复中的CLASS_ISPREVERIFIED