您的位置:首页 > 移动开发 > Android开发

关于android 提示had used a different xxx; during pre-berification

2016-07-09 08:38 387 查看
重复加载了相同类

我们可以在4.4.2/442/dalvik/vm/oo/Resolve.cpp这个里面找到抛出这个异常的判断逻辑: 







通过这些提示再加上方法实现逻辑
它会去判断引用类所在的dex文件是否和想要的索引类所在的dex是同一个,如果不为同一个则会抛出这个异常
resClass = dvmFindClassNoInit(className, referrer->classLoader);
这句是获取实际索引类,如果之前相同的类加载器已经从与索引类不同的dex文件中加载了相同完整类名的类,则会导致获取到的实际索引类不是想要的索引类(所出dex文件不同),即引用类与实际索引类由同一个类加载器加载,但是处于不同的dex文件中 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: