美文网首页
java.lang.VerifyError: Rejecting

java.lang.VerifyError: Rejecting

作者: 钢镚koala | 来源:发表于2021-08-03 10:37 被阅读0次

在最近的工作中,遇到了一个比较头疼的问题。就是在打包后的sdk给开发者使用时,gradle 4.0+ ,as 4.1+ 版本的用户没问题。但是在低版本gradle 和as 的使用过程中,发生了如标题一样的错误。java.lang.VerifyError: Rejecting class because it failed compile-time verification (declaration of 'com.test.a.o' appears in /data/app/com.test.app-1/base.apk:classes8.dex)
本以为可以直接定位错误代码处,修改即可。但事与愿违,即使把这段代码注释掉,其他的地方也会报出类似的错误。
为了验证是否是开发工具版本的问题。我们使用了旧版本release代码尝试,发现打包后的sdk与线上release的不同,包体比之更小。因此定位可能是android sdk版本出了问题。
在脚本执行的不同处有混淆文件的不同。所以,从6.2.2 proguard 下降到5.2 版本, 由于java 1.7的问题,所以选择5.2+版本尝试。
尝试后,发现真的是这个混淆文件proguard-android-optimize.txt版本的问题。

在此记录一下。至于as 版本和gradle 版本高的没问题,猜测可能是google的坑。所以,如果有小伙伴知道的话,请告知一下。

当然除了上述本人遇到此问题的解决方法,还有其他的情况。参考几篇文章,链接如下:https://www.e-learn.cn/content/wangluowenzhang/516140
https://code.google.com/p/android/issues/detail?id=80961
(http://fyjumkyu.blogspot.com/2018/06/verifyerror-rejecting-class.html)
(https://stackoverflow.com/questions/30455162/rejecting-class-because-it-failed-compile-time-verification-android)

相关文章

网友评论

      本文标题:java.lang.VerifyError: Rejecting

      本文链接:https://www.haomeiwen.com/subject/tqnsvltx.html