Android載入第三方jar混淆出錯的問題

2021-08-26 12:29:40 字數 1424 閱讀 2679

如果工程引入了android-support-v4的jar類庫,那麼在工程打包混淆時,就會出現報錯提示。例如提示你:you may need to specify additional library jars (using '-libraryjars')。

這裡先給出解決方案,稍後我們再來解釋如何處理類似情況:

在proguard.cfg裡的後面,新增如下內容:

-libraryjars /android-support-v4.jar 

-dontwarn android.support.v4.** 

-keep class android.support.v4.**  

-keep public class * extends android.support.v4.** 

然後你再打包看看,應該可以正常生成apk安裝包了。

打包出錯:

情況一:

"類1 can't find referenced class 類2" 字面上的意思就是類1找不到類2的引用;它會建議你:"you may need to specify additional library jars (using '-libraryjars').";

需要使用-libraryjars加上專案中使用到的第三方庫就ok了。

例如:-libraryjars /android-support-v4.jar

注意:這裡引用方式是當前工程的根目錄(也可以配置其他目錄),也就是說,你要把第三方jar放到當前目錄下,否則就會警告說找不到jar檔案!

情況二:

例如: can't find superclass or inte***ce android.os.parcelable$classloadercreator,碰到這樣的情況,可以使用-dontwarn com.xx.yy.**,不對錯誤提出警告。

注意:使用這個方式的話,要確保自己沒有用到這個庫裡面的類!否則就會拋classnotfoundexception!

情況三:

在工程中確實用到了該類,採用上面方式還是不行。這個時候就要再增加一項:-keep class com.xx.yy.** ,讓當前類不混淆。

小結:對於引用第三方包的情況,可以採用下面方式避免打包出錯:

-libraryjars /aaa.jar

-dontwarn com.xx.yy.**

-keep class com.xx.yy.**

我們可以使用

-dontwarn com.xx.bbb.**

-keep class com.xx.bbb.**

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

android匯入第三方jar包報錯

怎樣在android平台上使用第三方jar包,為什麼我在引入了,編譯時沒有錯誤,執行時就有錯誤,報無法例項化錯誤,請問這是什麼原因,本文給於解決方法,需要了解的朋友可以參考下 在android上匯入zxing.jar包,總是報錯 後來找到了解決方法 在adt17的版本之前,匯入第三方jar包時要建立...

android專案打第三方jar包

隨著android系統的日益發展和日漸成熟,各種平台的合作就日漸頻繁。現在主要網際網路公司,都退出了各種各樣的外掛程式功能。如第三方支付,第三方聯合登陸和微博分享等等功能。近期由於業務的需要,公司提出將專案的功能打成jar包,提供給其它客戶呼叫。經過一段時間的調查研究和實踐,先將解決辦法總結如下。直...

Android 混淆打包不混淆第三方jar包

專案由於要公布,所以要混淆打包。混淆打包流程 1.在proguard project.txt檔案裡加入不須要混淆的類和第三方的jar包 這個是保持自己包中不須要混淆的類,假設有些類呼叫了jni也不須要混淆,不然會出錯。還有假設專案中有其它專案作為library引入,那這些專案的一些類也不能混淆。這個...