2

I'm new using Proguard for obfuscation my java class, this is my app gradle:

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

i was enabled minifyEnabled for Proguard. And this is my 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*

When i run the application, all run normal after application move to another activity that's implementSearchView.OnQueryTextListener give me error like this :

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)

Please someone help me, i was follow this instruction Android SearchView does not work but still get same error. What i want is just Proguard to obfuscation my java class

Community
  • 1
  • 1
  • What do you mean by: `but still get same error`, can you paste your codes in the question? check my answer: http://stackoverflow.com/a/35254940/4409113 – ʍѳђઽ૯ท Feb 10 '16 at 10:12

1 Answers1

0

use below way,

-dontwarn android.support.v7.**
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }

same for other support library v4

-dontwarn android.support.v4.app.**
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
Dhaval Parmar
  • 18,812
  • 8
  • 82
  • 177