我的应用程序已完全准备好部署并使用了许多库。我想使用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'
}
答案 0 :(得分:0)
没有什么"最小配置"用于proguard配置。您将在其官方仓库页面上获得每个库的proguard配置。因此,无论您使用什么依赖项,都要通过这些依赖项为每个依赖项添加proguard配置。