今天导出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配置不对而导致的。