Android 混淆代码的时候出现问题

来源:互联网 发布:福州广电网络数字电视 编辑:程序博客网 时间:2024/06/05 19:37


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






1 0
原创粉丝点击