1

Я получаю странные проблемыjava.lang.NoClassDefFoundError android.support.v7.view.menu.MenuBuilder

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

главным образом на 4.2.2 и 4.4.2 устройства. Это случилось, когда я начал использовать библиотеку supportv7 в своем коде приложения, чтобы воспользоваться преимуществом материальных проектов TOOLBAR.

Вот мои build.gradle зависимости:

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' 
} 

Может кто-нибудь пожалуйста, помогите. Я застрял с 2 дня назад на том же самом. Я проверил различные исправления proguard, но с этим тоже не повезло. Пожалуйста, помогите

ответ

1

Смотрите эту проблему в Google Дискуссии.

#150 from google groups Как сказал

Поскольку осторожны с -keep класса ! Android.support.v7.internal.view.menu. **. Существует ряд классов , на которые ссылаются ресурсы appcompat.

Лучшим решением будет добавить следующие строки вместо:

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

но что хак с ProGuard не всегда работает. –

+3

@StanislavParkhomenko Это не сработало для меня. Уже проверено то же самое. –

+0

@ Ironman, есть ли другой способ? –

1

Ничто не работал для меня, и потребовалось 2 недели, чтобы найти это решение:

Измененный строить инструменты:

buildToolsVersion "23.0.3" 

и заменен

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' 

с

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

Да, это работает для меня. –

Смежные вопросы