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配置不對而導致的。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章