2015-11-23 72 views
0

我啓用了我的發佈版本的proguard,當我運行該項目時,獲得these warnings and errors。這裏是我的buildTypes塊:啓用proguard後獲取警告和錯誤

buildTypes { 
     release { 
      minifyEnabled true 
      //shrinkResources true 
      signingConfig signingConfigs.myConfig 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

構建消息太長,張貼在這裏所以已經把外部鏈接。 這些警告的原因是什麼?有什麼我做錯了嗎?我怎樣才能解決這個問題?

回答

1

對於您正在使用的任何外部庫,您需要在您的proguard.pro文件中添加規則。

舉例來說,在我的項目,這些都是proguard的規則,我添加了改造和okhttp

# Retrofit 1.X 

-keep class com.squareup.okhttp.** { *; } 
-keep class retrofit.** { *; } 
-keep interface com.squareup.okhttp.** { *; } 

-dontwarn com.squareup.okhttp.** 
-dontwarn okio.** 
-dontwarn retrofit.** 
-dontwarn rx.** 

-keepclasseswithmembers class * { 
    @retrofit.http.* <methods>; 
} 

這些規則是從

https://github.com/krschultz/android-proguard-snippets/blob/master/libraries/proguard-square-retrofit.pro

採取所以你需要類似的檢查每一個庫有哪些規則需要補充。

1

警告中提到的每個庫都有自己的proguard規則,您必須將其放入proguard-rules.pro。例如,您可以在http://jakewharton.github.io/butterknife/「Proguard」部分找到ButterKnife的規則。