Eclipse proguard 代码混淆 微信第三方库 Can\'t process class (Unknown verification type [95] in stack map frame)
来源:互联网 发布:如何让linux系统上网 编辑:程序博客网 时间:2024/05/22 16:50
今天编译一个android的Eclipse项目,不开启代码混淆能成功导出apk包,开启代码混淆后报错:
[2016-12-26 23:45:51 - test] Proguard returned with error code 1. See console [2016-12-26 23:45:51 - test] java.io.IOException: Can't read [D:\xxx\test\code\android\libs\libammsdk.jar] (Can't process class [com/tencent/wxop/stat/al.class] (Unknown verification type [95] in stack map frame)) [2016-12-26 23:45:51 - test] at proguard.InputReader.readInput(InputReader.java:230)[2016-12-26 23:45:51 - test] at proguard.InputReader.readInput(InputReader.java:200)[2016-12-26 23:45:51 - test] at proguard.InputReader.readInput(InputReader.java:178)[2016-12-26 23:45:51 - test] at proguard.InputReader.execute(InputReader.java:78)[2016-12-26 23:45:51 - test] at proguard.ProGuard.readInput(ProGuard.java:196)[2016-12-26 23:45:51 - test] at proguard.ProGuard.execute(ProGuard.java:78)[2016-12-26 23:45:51 - test] at proguard.ProGuard.main(ProGuard.java:492)[2016-12-26 23:45:51 - test] Caused by: java.io.IOException: Can't process class [com/tencent/wxop/stat/al.class] (Unknown verification type [95] in stack map frame)[2016-12-26 23:45:51 - test] at proguard.io.ClassReader.read(ClassReader.java:112)[2016-12-26 23:45:51 - test] at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)[2016-12-26 23:45:51 - test] at proguard.io.JarReader.read(JarReader.java:65)[2016-12-26 23:45:51 - test] at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)[2016-12-26 23:45:51 - test] at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)[2016-12-26 23:45:51 - test] at proguard.InputReader.readInput(InputReader.java:226)[2016-12-26 23:45:51 - test] ... 6 more[2016-12-26 23:45:51 - test] Caused by: java.lang.RuntimeException: Unknown verification type [95] in stack map frame[2016-12-26 23:45:51 - test] at proguard.classfile.io.ProgramClassReader.createVerificationType(ProgramClassReader.java:890)[2016-12-26 23:45:51 - test] at proguard.classfile.io.ProgramClassReader.visitFullFrame(ProgramClassReader.java:659)[2016-12-26 23:45:51 - test] at proguard.classfile.attribute.preverification.FullFrame.accept(FullFrame.java:114)[2016-12-26 23:45:51 - test] at proguard.classfile.io.ProgramClassReader.visitStackMapTableAttribute(ProgramClassReader.java:452)[2016-12-26 23:45:51 - test] at proguard.classfile.attribute.preverification.StackMapTableAttribute.accept(StackMapTableAttribute.java:71)[2016-12-26 23:45:51 - test] at proguard.classfile.io.ProgramClassReader.visitCodeAttribute(ProgramClassReader.java:422)[2016-12-26 23:45:51 - test] at proguard.classfile.attribute.CodeAttribute.accept(CodeAttribute.java:101)[2016-12-26 23:45:51 - test] at proguard.classfile.io.ProgramClassReader.visitProgramMethod(ProgramClassReader.java:200)[2016-12-26 23:45:51 - test] at proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:142)[2016-12-26 23:45:51 - test] at proguard.classfile.ProgramClass.accept(ProgramClass.java:346)[2016-12-26 23:45:51 - test] at proguard.io.ClassReader.read(ClassReader.java:91)[2016-12-26 23:45:51 - test] ... 11 more
在网上查了很久资料,proguard-project.txt等文件都是正确配置的:
-libraryjars libs/libammsdk.jar
.....
-dontwarn com.tencent.**
-keep class com.tencent.** {*;}
事实上我能确定项目绝对没问题:因为这个项目是很久以前的,当时发版本有代码混淆,而且没任何问题,之后项目完全没有任何改动。而我最近电脑重装系统,Eclipse开发环境和sdk目录是重新弄的,所以肯定是开发环境的问题。
网上查了资料后,能判断是proguard版本的问题,于是我下载了proguard5.3,用5.3中的lib文件夹中的proguard.jar等三个jar文件替换掉
sdk\tools\proguard\lib
下的三个jar文件,结果报另外的错:
The same input jar is specified twice
然后根据http://blog.csdn.net/ylbf_dev/article/details/50448727的解释,把proguard-project.txt中的-libraryjars依次注释掉,这个新问题是解决了,但之前的那个问题又出现了,看来还是行不通。
后来还下载过较老的版本proguard4.11替换lib文件夹中的三个jar文件,问题依然存在!
再后来找到这个帖子:http://bbs.csdn.net/topics/390659813?page=1,是这样说的:
这个问题一般都是jar包内部做了较为高级的防破解或者有问题导致的,我们需要弱化proguard对引用第三方jar包的检查,当然也有可能是proguard不够新导致。以下是弱化检查的办法。
首先下载最新版本的proguard文件,找到~/src/proguard/classfile中的ClassConstants.java,修改174行附近的ATTR_StackMapTable值为“dummy”,保存。
在linux环境下运行~/build下的build.sh文件(mac下可运行),重新生成在lib下的三个jar包proguard.jar,proguardgui.jar,retrace.jar,将这三个包替换到你的安卓sdk下的,tools的proguard的lib下,~/<eclipse folder="">/sdk/tools/proguard/lib
在CSDN上下载了一个热心网友上传的,基于proguard4.11的修改编译后的版本,替换sdk\tools\proguard\lib目录下proguard.jar等三个文件后,终于成功export代码混淆版本了!
0 0
- Eclipse proguard 代码混淆 微信第三方库 Can\'t process class (Unknown verification type [95] in stack map frame)
- Can't process class [com/imagpay/bP.class] (Unknown verification type [25] in stack map frame
- Proguard混淆代码报Unknown verification type [255] in stack map frame解决方法
- Android 混淆打包时第三方jar包报错Unknown verification type [*] in stack map frame
- (Can't process class [com/tencent/wxop/stat/al.class] (Unknown verification type [95] in stack map f
- (Unknown verification type [*] in stack map frame)
- Unknown verification type [*] in stack map frame
- proguard 出现的“(Unknown verification type [XX] in stack map frame)”问题的解决办法
- Unknown verification type [17] in stack map frame
- 混淆jar包 作为依赖工程 打包混淆出错 Unknown verification type [96] in stack map frame
- android studio 混淆时出现Can't process class [com/tencent/wxop/stat/al.class] (Unknown verification type
- 混淆出现Can't process class [com/xxx/xxx/xxx/xxx.class] (Unknown verification type的原因所在
- Android Studio打包时,已经混淆的jar文件报错(Unknown verification type [*] in stack map frame)
- AndroidStudio出现 Unknown verification type [95] in stack map frame 问题的解决办法
- 解决微信分享SDK,混淆报错Can't process class [com/tencent/wxop/stat/al.class] 以及 proguard.jar版本不匹配的问题 proguar
- Android代码混淆第三方jar,can't find referenced class的解决
- Android代码混淆第三方jar,can't find referenced class的解决
- Android代码混淆第三方jar,can't find referenced class的解决
- iOS xcode textField 点击后虚拟键盘没有弹出的问题
- iOS xcode 模拟器没有home键?
- iOS xcode 网络请求报错:The resource could not be loaded because the App Transport Security policy requires
- Mysql 存储过程 和 函数 区别
- 在XCode6中不能创建空项目?
- Eclipse proguard 代码混淆 微信第三方库 Can\'t process class (Unknown verification type [95] in stack map frame)
- Eclipse中不能创建AVD,提示:No system images installed for this target
- 安卓开发:荣耀,红米,不能真机调试的问题
- Eclipse 创建 Android项目,会多出一个 appcompat_v7 的问题
- appcompat_v7报错:styles_base.xml:20: error: Error retrieving parent for item
- FragmentTransaction addToBackStack 无效问题
- AlertDialog 无法弹出的问题,小米手机
- android R.layout 中找不到已存在的布局文件
- Deep Learning(深度学习)学习笔记整理系列之(六)