我是新手使用Proguard来混淆我的java类, 这是我的应用程序:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debuggable false
}
}
我为Proguard启用了 minifyEnabled 。这是我的Proguard-rules.pro
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class android.support.v7.app.** { *; }
-keep interface android.support.v7.app.** { *; }
-keep class android.support.v7.widget.** { *; }
-keep interface android.support.v7.widget.** { *; }
-dontshrink
-dontoptimize
-dontpreverify
-dontskipnonpubliclibraryclasses
-verbose
-dontusemixedcaseclassnames
-keepattributes *Annotation*
当我运行应用程序时,在应用程序移动到另一个实现 SearchView.OnQueryTextListener 的活动后,所有运行正常都会给我这样的错误:
Cannot instantiate class: android.support.v7.widget.SearchView
java.lang.NoSuchMethodException: <init> [class android.content.Context]
at java.lang.Class.getConstructorOrMethod(Class.java:460)
at java.lang.Class.getConstructor(Class.java:431)
at android.support.v7.view.k.a(Unknown Source)
at android.support.v7.view.k.a(Unknown Source)
请有人帮助我,我按照这条指令Android SearchView does not work但仍然得到同样的错误。我想要的只是Proguard来混淆我的java类
答案 0 :(得分:0)
使用以下方式,
-dontwarn android.support.v7.**
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }
与其他支持库v4相同
-dontwarn android.support.v4.app.**
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }