В моей игре есть кнопка GooglePlus
, позволяющая пользователям войти в систему с помощью Google. После нажатия на кнопку появляется всплывающее окно с пользовательскими учетными записями Google. После выбора одного из них приложение вылетает.
Эта ошибка появляется после того, как я обновил все зависимости Google Play с версии 10.2.1
до 16.0.0
. Моя игра использует как MultiDex
, так и ProGuard
.
Возможно, мне нужно добавить правила в multidex
keep и proguard
config. Я старался изо всех сил, но не смог найти решение.
Вот журналы:
Fatal Exception: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/plus/internal/zzg;
at com.google.android.gms.plus.internal.zzh.createServiceInterface(Unknown Source)
at com.google.android.gms.common.internal.BaseGmsClient$zzf.zzm(Unknown Source:17)
at com.google.android.gms.common.internal.BaseGmsClient$zza.zza(Unknown Source:12)
at com.google.android.gms.common.internal.BaseGmsClient$zzc.zzo(Unknown Source:11)
at com.google.android.gms.common.internal.BaseGmsClient$zzb.handleMessage(Unknown Source:48)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6316)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
Caused by java.lang.ClassNotFoundException: com.google.android.gms.plus.internal.zzg
at java.lang.VMClassLoader.findLoadedClass(VMClassLoader.java)
at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742)
at java.lang.ClassLoader.loadClass(ClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at com.google.android.gms.plus.internal.zzh.createServiceInterface(Unknown Source)
at com.google.android.gms.common.internal.BaseGmsClient$zzf.zzm(Unknown Source:17)
at com.google.android.gms.common.internal.BaseGmsClient$zza.zza(Unknown Source:12)
at com.google.android.gms.common.internal.BaseGmsClient$zzc.zzo(Unknown Source:11)
at com.google.android.gms.common.internal.BaseGmsClient$zzb.handleMessage(Unknown Source:48)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6316)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
Caused by java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/plus/zza;
at com.google.android.gms.plus.internal.zzh.createServiceInterface(Unknown Source)
at com.google.android.gms.common.internal.BaseGmsClient$zzf.zzm(Unknown Source:17)
at com.google.android.gms.common.internal.BaseGmsClient$zza.zza(Unknown Source:12)
at com.google.android.gms.common.internal.BaseGmsClient$zzc.zzo(Unknown Source:11)
at com.google.android.gms.common.internal.BaseGmsClient$zzb.handleMessage(Unknown Source:48)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6316)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
Caused by java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.internal.plus.zza" on path: DexPathList[[zip file "/data/app/com.example.mobile.example.android-2/base.apk"],nativeLibraryDirectories=[/data/app/com.example.mobile.example.android-2/lib/arm, /data/app/com.example.mobile.example.android-2/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at com.google.android.gms.plus.internal.zzh.createServiceInterface(Unknown Source)
at com.google.android.gms.common.internal.BaseGmsClient$zzf.zzm(Unknown Source:17)
at com.google.android.gms.common.internal.BaseGmsClient$zza.zza(Unknown Source:12)
at com.google.android.gms.common.internal.BaseGmsClient$zzc.zzo(Unknown Source:11)
at com.google.android.gms.common.internal.BaseGmsClient$zzb.handleMessage(Unknown Source:48)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6316)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
В документации Google сказано, что ниже:
Примечание: Директивы ProGuard включены в клиент сервисов Play
библиотеки для сохранения необходимых классов. Плагин Android для
Gradle автоматически добавляет файлы конфигурации ProGuard в AAR
(Android ARchive) и добавляет этот пакет в ProGuard
конфигурации. При создании проекта Android Studio автоматически
создает файлы конфигурации ProGuard и свойства build.gradle
для использования ProGuard. Чтобы использовать ProGuard с Android Studio, необходимо включить
настройка ProGuard в ваших build.gradle buildTypes. Для большего
информацию см. в руководстве ProGuard.
Есть предложения?