使用Proguard缩小时运行时问题

时间:2017-06-05 14:20:23

标签: android 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.**

我在调试环境中测试。我的gradle配置如下

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

1 个答案:

答案 0 :(得分:0)

没有什么"最小配置"用于proguard配置。您将在其官方仓库页面上获得每个库的proguard配置。因此,无论您使用什么依赖项,都要通过这些依赖项为每个依赖项添加proguard配置。