【Android开发】混淆代码的时候出现问题

 

今天导出APK之前,对代码进行混淆处理,结果出现了以下问题。

——————————————————————————————

 Proguard returned with error code 1. See console
 java.io.IOException: Can't read [C:\Users\Administrator\AppData\Local\Temp\android_3725412939001170992.jar] (Can't process class [bassy/btled/adapter/MyListAdapter$ViewHolder.class] (Unsupported version number [51.0] for class format))
  at proguard.InputReader.readInput(InputReader.java:230)
  at proguard.InputReader.readInput(InputReader.java:200)
  at proguard.InputReader.readInput(InputReader.java:178)
  at proguard.InputReader.execute(InputReader.java:78)
  at proguard.ProGuard.readInput(ProGuard.java:195)
  at proguard.ProGuard.execute(ProGuard.java:78)
  at proguard.ProGuard.main(ProGuard.java:499)

——————————————————————————————

 

百度了一下【Unsupported version number [51.0] for class format】,说是JDK的问题。

看了一下项目属性,发现我的项目是用JDK1.7进行编译的,

我手动设为JDK1.6,再进行编译,结果又出现了其它类似错误。

 

——————————————————————————————

 Proguard returned with error code 1. See console
 java.io.IOException: Can't read [E:\My_Java_Project\Project_BTLED\libs\android-support-v4.jar] (Can't process class [android/support/v4/provider/DocumentsContractApi19.class] (Unsupported version number [51.0] for class format))
  at proguard.InputReader.readInput(InputReader.java:230)
  at proguard.InputReader.readInput(InputReader.java:200)
  at proguard.InputReader.readInput(InputReader.java:178)
  at proguard.InputReader.execute(InputReader.java:78)
  at proguard.ProGuard.readInput(ProGuard.java:195)
  at proguard.ProGuard.execute(ProGuard.java:78)
  at proguard.ProGuard.main(ProGuard.java:499)
——————————————————————————————

 

在cmd下运行“proguard”,发现progurad的版本居然是4.5.1

估计是这货的版本太低了。

 

随后,升级了Android SDK下的proguard为4.11,

再次在cmd下运行“proguard",居然还是4.5.1

 

不对劲啊!!换了proguard4.8,居然还是4.5.1,不管是运行proguard.bat还是proguardgui.bat都显示是4.5.1

看了一个系统路径 , 发现有一个PROGUARD_HOME的变量指向了D:\proguard_4.5.1。

我果断把D:\proguard_4.5.1删除了,

并把变量的值换成E:\Mobile_Develop\Android_SDK\tools\proguard

 

重新试了一遍,版本问题解决了,是最新的4.11了。

 

但是编译的时候,还是会出现问题

 

——————————————————————————————

Error: Unable to access jarfile ..\lib\proguard.jar

——————————————————————————————

 

后来,看了这位哥们的方法。顺利解决了

http://blog.sina.com.cn/s/blog_6e334dc70101gtp7.html

 

总结:

1、问题一是proguard版本太低而导致的。

2、问题二是proguard配置不对而导致的。

 

 

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值