Страницы

Поиск по вопросам

понедельник, 30 марта 2020 г.

ClassNotFoundException: android.support.v7.app.AppCompatViewInflater и mixing versions libs can lead to runtime crashes

#android


Ошибка:  

com.google.android.gms.ui I/AppCompatDelegate: Failed to instantiate custom view
inflater android.support.v7.app.AppCompatViewInflater. Falling back to default.
java.lang.ClassNotFoundException: android.support.v7.app.AppCompatViewInflater
...

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.app.AppCompatViewInflater"
on path: DexPathList[[zip file "/system/framework/com.android.location.provider.jar",
zip file "/system/framework/com.android.media.remotedisplay.jar", zip file "/data/app/com.google.android.gms-1/base.apk"],nativeLibraryDirectories=[/data/app/com.google.android.gms-1/lib/x86,
/data/app/com.google.android.gms-1/base.apk!/lib/x86, /system/lib, /vendor/lib]]


Предполагаю что ошибка связана с этим:



Делал:
1. Clean Project -> Rebuild
2. менял supportVersion на 27.0.2
3. Invalidate caches and restart
4. удалял папку libraries (.idea/libraries)
5. добавлял строку в proguard

-keep class android.support.v7.app.AppCompatViewInflater{ (...); } 


6. с бубном танцевал, магические слова говорил

Gradle: 4.6
classpath 'com.android.tools.build:gradle:3.2.1'
buildToolsVersion '28.0.3'

android studio 3.2.1 
    


Ответы

Ответ 1



Просто хочет, чтобы все версии библиотек android.support были под одну гребёнку (без миксов). На уровне Project -> откройте папку .idea -> потом папку libraries, как показано на картинке: На основе этих данных, посмотрите все ли либы используют одну и туже версию (и так понятно что не все, коль ошибка выскачила, но именно так можно узнать какие именно библиотеки выпендриваются). Потом в build.gradle на уровне приложения добавляйте те либы, которые выпендрились. Например, если вы используете версию 28.0.0, а где-то в списке будет либа с 27.0.2, то эту либу в грэдле и пропишите с последней версией. P.S. Когда у меня такая ситуация была, то помимо основной appcompact-v7 пришлось явно указать последнюю версию ещё для palete-v7 и прочих суппортов: ext.supportLibraryVersion = '28.0.0' //##################################################################### // Don't delete. //##################################################################### implementation "com.android.support:appcompat-v7:$supportLibraryVersion" implementation "com.android.support:palette-v7:$supportLibraryVersion" implementation "com.android.support:support-media-compat:$supportLibraryVersion" implementation "com.android.support:support-v4:$supportLibraryVersion" implementation "com.android.support:support-v13:$supportLibraryVersion" //##################################################################### А по поводу ошибки. Попробуйте добавить в proguard-rules.pro следующее: -dontwarn android.support.v7.** -keep class android.support.v7.** { *; } -keep interface android.support.v7.** { *; } или -keep class android.support.v7.app.AppCompatViewInflater{ (...); }

Ответ 2



Оказалось что ошибка была из за того что я не интегрировал google API https://developers.google.com/identity/sign-in/android/start-integrating

Комментариев нет:

Отправить комментарий