没有找到类的Android支持v7错误:NoClassDefFoundError

时间:2015-01-18 13:31:55

标签: android android-studio proguard

我真的无法弄清楚为什么会遇到这种异常

登录

FATAL EXCEPTION: main
    Process: com.example22.dell.goodprj, PID: 21839
    java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
            at android.support.v7.app.ActionBarActivityDelegateBase.initializePanelMenu(ActionBarActivityDelegateBase.java:914)
            at android.support.v7.app.ActionBarActivityDelegateBase.preparePanel(ActionBarActivityDelegateBase.java:964)
            at android.support.v7.app.ActionBarActivityDelegateBase.doInvalidatePanelMenu(ActionBarActivityDelegateBase.java:1182)
            at android.support.v7.app.ActionBarActivityDelegateBase.access$100(ActionBarActivityDelegateBase.java:79)
            at android.support.v7.app.ActionBarActivityDelegateBase$1.run(ActionBarActivityDelegateBase.java:118)
            at android.os.Handler.handleCallback(Handler.java:808)
            at android.os.Handler.dispatchMessage(Handler.java:103)
            at android.os.Looper.loop(Looper.java:193)
            at android.app.ActivityThread.main(ActivityThread.java:5292)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
            at dalvik.system.NativeStart.main(Native Method)

proguard-rules.pro

 -keep public class * extends android.app.Activity
 -keep public class * extends android.app.Application
 -keep public class * extends android.app.Service
 -keep public class * extends android.content.BroadcastReceiver
 -keep public class * extends android.content.ContentProvider
 -keep public class * extends android.preference.Preference
 -keep public class com.android.vending.billing.IInAppBillingService
 -keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, 

 int);
 }
 -keepclasseswithmembers class * {
  public <init>(android.content.Context, android.util.AttributeSet);
 }
 -keepclasseswithmembers class * {
  public <init>(android.content.Context, android.util.AttributeSet, 

  int);
 }
 -keepclassmembers class * extends android.content.Context {
  public void *(android.view.View);
   public void *(android.view.MenuItem);
  }

的build.gradle

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

1 个答案:

答案 0 :(得分:0)

在proguard中添加以下行:

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