1. 程式人生 > >Android 程式碼混淆can’t find referenced class問題解決方案

Android 程式碼混淆can’t find referenced class問題解決方案

前面一文介紹了Android使用ProGuard程式碼混淆技術,不過對於某些引入了第三方jar包的專案可能在匯出的時候會報錯,這時就需要對proguard配置檔案進行一些研究才能解決問題了。

ProGuard 程式碼混淆後匯出警告:can’t find referenced class

20131004120218

一、這時候最簡單的解決方法:

對於有的第三方jar,可能已經進行過程式碼混淆了,在這裡就要保持,例如百度的地圖包jar。保持jar,避免混淆的程式碼如下:

-keep class com.baidu.mapapi.** {*;}

不混淆com.baidu.mapapi包中的所有程式碼,類名、方法、變數等。

在此感謝作者,解決了我的問題,其實最終方案很簡單,新增兩行就好了:

其實找不到引用的這個類是第三方包裡面的,而且很多時候我們只需要打亂自己的程式碼就行了,第三方包的程式碼就是否要打亂就不要管了。

我們可以使用:

-dontwarn com.xx.bbb.**
-keep class com.xx.bbb.** { *;}

引數來保持第三方庫中的類而不亂,-dontwarn和-keep 結合使用,意思是保持com.xx.bbb.**這個包裡面的所有類和所有方法而不混淆,接著還叫ProGuard不要警告找不到com.xx.bbb.**這個包裡面的類的相關引用

配置好後,重新打包,一切OK!而且程式能正確執行。

以上是本人在寫混淆配置檔案的時候遇到的錯誤解決方法

本人在專案中開發使用ant批量打包混淆的配置檔案已經上傳 點選開啟連結

http://download.csdn.net/detail/fancylovejava/8551463

記錄下,以後再做其他專案批量打包的時候可以借鑑下!

相關推薦

no