Android Studio打包时,已经混淆的jar文件报错(Unknown verification type [*] in stack map frame)

来源:互联网 发布:it服务外包最大 编辑:程序博客网 时间:2024/05/22 00:33

记录一个遇到很久的问题

项目本身是Unity3d的类型,打包的时候一直报错

 “(Unknown verification type [*] in stack map frame)” 

问题定位到 unity-class.jar;

百度后解决方案都是很统一,都指明出是proguard的一个bug,解决方案也清楚,是重新编译一个proguard。

首先肯定的是这个解决方案是正确的,也帮我解决了一时的问题。

最近Android Studio 3.0稳定版本发布后,这个问题又冒了出来。经过研究还是找到解决方案。

旧版本的gradle版本对应proguard版本   2.2.3 =》5.2.1
新版本的gradle版本对应proguard版本  3.0.0 ==》5.3.3


不清楚这个配对关系是哪里配置的。
我的解决方案是 

把5.2.1.jar改名替换成5.3.3.jar

替换的路径也是很讲究
1.优先替换   【AS_path\gradle\m2repository\net\sf\proguard\proguard-base】   对于AS,【AS_path\gradle\m2repository】也是一个代码仓库,会检测该路径下是否包含所需文件。
2.如果【AS_path\gradle\m2repository\net\sf\proguard\proguard-base】没有找到对应的文件,会联网去代码仓库获取,缓存路径大概为
【系统盘:\Users\登录用户名\.gradle\caches\modules-2\files-2.1\net.sf.proguard\proguard-base\5.3.3\】




总结突破点
1.版本对应关系, 不清楚对应关系,还是替换5.2.1.没有生效。后全部删掉proguard,看到as在下载5.3.3版本。
替换的路径。如果替换到【AS_path\gradle\m2repository\net\sf\proguard\proguard-base】需要把【系统盘:\Users\登录用户名\.gradle\caches\modules-2\files-2.1\net.sf.proguard\proguard-base\5.3.3\】


有类似问题无法解决可以联系我qq197716976




阅读全文
0 0
原创粉丝点击