2016-02-10 56 views
2

我是新使用ProGuard以用於模糊我的java類, 這是我的應用程序gradle這個:Proguard的混淆使應用程序崩潰

buildTypes { 
    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     debuggable false 
    } 
} 

我啓用minifyEnabled的Proguard的。這是我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

你說的意思是:'但仍然得到同樣的錯誤',你可以在問題中粘貼你的代碼嗎?檢查我的答案:http://stackoverflow.com/a/35254940/4409113 – Mohsen

回答

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.** { *; } 
相關問題