1

Ich erhalte eine seltsame Ausgabejava.lang.NoClassDefFoundError android.support.v7.view.menu.MenuBuilder

Fatal Exception: java.lang.NoClassDefFoundError android.support.v7.view.menu. MenuBuilder

hauptsächlich auf 4.2.2 und 4.4.2 Geräte. Es passierte, als ich anfing, die supportv7-Bibliothek in meinem Anwendungscode zu verwenden, um den Material-Vorteil von TOOLBAR zu nutzen.

Hier sind meine build.gradle Abhängigkeiten:

dependencies { 
     compile fileTree(dir: 'libs', include: ['*.jar']) 

     compile files('libs/sinch-android-verification-1.0.4.jar') 
     compile project(':library') 
     compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
      transitive = true; 
     } 

     compile 'com.android.support:appcompat-v7:23.1.1' 
     compile 'com.mixpanel.android:mixpanel-android:4.6.0' 
     compile 'uk.co.chrisjenx:calligraphy:2.0.2' 
     compile 'it.sephiroth.android.library.horizontallistview:hlistview:1.2.2' 
     compile 'com.google.code.gson:gson:2.3.1' 
     compile 'com.google.android.gms:play-services-gcm:8.4.0' 
     compile 'io.branch.sdk.android:library:1.8.8' 
     compile 'com.android.support:support-v4:23.3.0' 
     compile 'com.squareup.okhttp3:okhttp:3.3.1' 
     compile 'com.android.support:design:23.3.0' 
     compile 'com.github.freshdesk:hotline-android:1.0.+' 
     //compile 'com.facebook.android:facebook-android-sdk:[4,5)' 
     compile 'com.google.android.gms:play-services-appindexing:8.4.0' 
} 

Kann jemand bitte helfen. Ich stecke seit 2 Tagen wieder auf dem selben. Ich habe verschiedene Bugfixes überprüft, hatte aber auch ein Pech. Bitte helfen Sie

Antwort

1

Siehe dieses Thema in Google Diskussion.

Wie #150 from google groups sagte

Da vorsichtig mit -keep Klasse ! Android.support.v7.internal.view.menu. **. Es gibt eine Reihe von Klassen, die von den Ressourcen von appcompat referenziert werden.

Die bessere Lösung ist, die folgenden Zeilen statt hinzufügen:

-keep class !android.support.v7.internal.view.menu.*MenuBuilder*, android.support.v7.** { *; } 
-keep interface android.support.v7.** { *; } 
+0

aber das Hack mit proguard nicht immer. –

+3

@StanislavParkhomenko Es hat nicht für mich gearbeitet. Habe das gleich überprüft. –

+0

@Ironman, gibt es anders herum? –

1

Nichts für mich gearbeitet, und es dauerte 2 Wochen, diese Lösung zu finden:

Build-Tools geändert:

buildToolsVersion "23.0.3" 

und ersetzt

compile 'com.android.support:appcompat-v7:23.1.1' 
compile 'com.android.support:support-v4:23.1.1' 
compile 'com.android.support:design:23.1.1' 

compile 'com.android.support:cardview-v7:23.1.1' 
compile 'com.android.support:recyclerview-v7:23.1.1' 
compile 'com.android.support:palette-v7:23.1.1' 

mit

compile 'com.android.support:appcompat-v7:24.2.1' 
compile 'com.android.support:support-v4:24.2.1' 
compile 'com.android.support:design:24.2.1' 

compile 'com.android.support:cardview-v7:24.2.1' 
compile 'com.android.support:recyclerview-v7:24.2.1' 
compile 'com.android.support:palette-v7:24.2.1' 
+0

Ja, es funktioniert für mich. –