ClassNotFoundException при использовании ProGuard

Я получил это распространенное исключение при использовании ProGuard. Тем не менее, я не мог найти способ исправить это.

Когда код запускается через ProGuard, я получаю это исключение при запуске:

Rejecting re-init on previously-failed class java.lang.Class<com.google.android.gms.internal.zzbyb>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/customtabs/CustomTabsServiceConnection;
    at boolean com.google.android.gms.internal.zzgr.a(android.content.Context) ((null):-1)
    at void com.google.android.gms.internal.zzni$zza.d(android.content.Context) ((null):-1)
    at void com.google.android.gms.internal.zzni$zza.<init>(android.content.Context, com.google.android.gms.internal.zzni) ((null):-1)
    at com.google.android.gms.internal.zzni com.google.android.gms.internal.zznj$1.a() ((null):-1)
    at java.lang.Object com.google.android.gms.internal.zznj$1.call() ((null):-1)
    at void com.google.android.gms.internal.zzpn$3.run() ((null):-1)
    at java.lang.Object java.util.concurrent.Executors$RunnableAdapter.call() (Executors.java:428)
    at void java.util.concurrent.FutureTask.run() (FutureTask.java:237)
    at void java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) (ThreadPoolExecutor.java:1133)
    at void java.util.concurrent.ThreadPoolExecutor$Worker.run() (ThreadPoolExecutor.java:607)
    at void java.lang.Thread.run() (Thread.java:761)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsServiceConnection" on path: DexPathList[[zip file "/data/app/me.manabreak.bandit.free-1/base.apk"],nativeLibraryDirectories=[/data/app/me.manabreak.bandit.free-1/lib/x86_64, /system/lib64, /vendor/lib64]]
    at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
    at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
    at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
    at boolean com.google.android.gms.internal.zzgr.a(android.content.Context) ((null):-1)
    at void com.google.android.gms.internal.zzni$zza.d(android.content.Context) ((null):-1)
    at void com.google.android.gms.internal.zzni$zza.<init>(android.content.Context, com.google.android.gms.internal.zzni) ((null):-1)
    at com.google.android.gms.internal.zzni com.google.android.gms.internal.zznj$1.a() ((null):-1)
    at java.lang.Object com.google.android.gms.internal.zznj$1.call() ((null):-1)
    at void com.google.android.gms.internal.zzpn$3.run() ((null):-1)
    at java.lang.Object java.util.concurrent.Executors$RunnableAdapter.call() (Executors.java:428)
    at void java.util.concurrent.FutureTask.run() (FutureTask.java:237)
    at void java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) (ThreadPoolExecutor.java:1133)
    at void java.util.concurrent.ThreadPoolExecutor$Worker.run() (ThreadPoolExecutor.java:607)
    at void java.lang.Thread.run() (Thread.java:761)

Я попытался добавить эти строки в свой файл ProGuard:

-keep class android.support.customtabs.CustomServiceConnection {*; }
-keep class android.support.customtabs.** { *; }
-keepclassmembers class android.support.customtabs.** {*; }

Но это не помогло. Как это исправить?


person manabreak    schedule 22.02.2017    source источник
comment
нашел какое-нибудь решение? у меня такая же проблема у.у.   -  person Jonathan Aste    schedule 28.04.2017


Ответы (1)


Проверьте, включили ли вы библиотеку поддержки дизайна Google в свой проект. Вы можете включить его в файл Gradle на уровне приложения следующим образом:

implementation 'com.android.support:customtabs:28.0.0'
person rascaldom    schedule 14.12.2018