2017-06-05 56 views
0

我的應用程序完全準備好部署和使用許多庫。我想使用ProGuard來縮小代碼,也想刪除未使用的類和資源,但同時使用ProGuard我收到運行時錯誤運行時問題,同時使用Proguard來縮小

java.lang.RuntimeException: Unable to create application com.rig.onblick.App: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference 

我經歷了很多的教程走了,但它似乎太複雜了寫proguard的配置,因爲我有編寫許多規則以確保我的應用程序能夠完美運行。我從來沒有在這種大型項目中使用過proguard。任何人都可以告訴我至少我的代碼將被縮小並且不會得到任何運行時錯誤的最小配置。

我現在的配置如下。

-dontwarn com.witt.mspapp.** 

-keep class com.github.mikephil.** { *; } 
-dontwarn com.github.mikephil.** 

-keep class com.github.mikephil.** { *; } 
-dontwarn org.apache.** 

-keep class com.google.gms.** { *; } 
-dontwarn com.google.gms.** 

-keep class com.viewpagerindicator.** { *; } 
-dontwarn com.viewpagerindicator.** 

-keep class org.jivesoftware.smackx.** { *; } 
-dontwarn org.jivesoftware.smackx.** 

我在debug env中測試。我的gradle配置如下

debug { 
      minifyEnabled true 
      shrinkResources true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 

回答

0

對於proguard配置沒有什麼「最小配置」。您將在其官方回購頁面上爲每個圖書館獲取proguard配置。因此,無論您使用哪種依賴關係,都要通過這些依賴項併爲每個依賴項添加proguard配置。

+0

很少有庫有proguard配置。我已經嘗試添加它們。但它沒有解決問題。我只想至少縮小不收縮。 –