xamarin / GooglePlayServicesComponents

Other
315 stars 148 forks source link

Xamarin.Firebase.Auth 120.0.1 crashes at runtime in Release mode #414

Open gmck opened 3 years ago

gmck commented 3 years ago

When signing in with user email get the following exception.

2021-01-13 14:22:57.281 21410-21410/? D/GoogleSignInFragment: Firebase.FirebaseException: An internal error has occurred. [ Instantiation of JsonResponse failed! class com.google.android.gms.internal.firebase-auth-api.zzxi ]
      --- End of managed Firebase.FirebaseException stack trace ---
    com.google.firebase.FirebaseException: An internal error has occurred. [ Instantiation of JsonResponse failed! class com.google.android.gms.internal.firebase-auth-api.zzxi ]
        at com.google.android.gms.internal.firebase-auth-api.zzte.zza(com.google.firebase:firebase-auth@@20.0.1:4)
        at com.google.android.gms.internal.firebase-auth-api.zzum.zza(com.google.firebase:firebase-auth@@20.0.1:9)
        at com.google.android.gms.internal.firebase-auth-api.zzun.zzk(com.google.firebase:firebase-auth@@20.0.1:1)
        at com.google.android.gms.internal.firebase-auth-api.zzuk.zzh(com.google.firebase:firebase-auth@@20.0.1:25)
        at com.google.android.gms.internal.firebase-auth-api.zztb.zzk(com.google.firebase:firebase-auth@@20.0.1:1)
        at com.google.android.gms.internal.firebase-auth-api.zzpc.zza(com.google.firebase:firebase-auth@@20.0.1:2)
        at com.google.android.gms.internal.firebase-auth-api.zzur.zza(com.google.firebase:firebase-auth@@20.0.1:25)
        at com.google.android.gms.internal.firebase-auth-api.zzub.zzd(com.google.firebase:firebase-auth@@20.0.1:4)
        at com.google.android.gms.internal.firebase-auth-api.zzpj.zzc(com.google.firebase:firebase-auth@@20.0.1:4)
        at com.google.android.gms.internal.firebase-auth-api.zztf.zzd(com.google.firebase:firebase-auth@@20.0.1:5)
        at com.google.android.gms.internal.firebase-auth-api.zzrr.zzd(Unknown Source:15)
        at com.google.android.gms.internal.firebase-auth-api.zzrq.accept(Unknown Source:6)
        at com.google.android.gms.common.api.internal.zacj.doExecute(com.google.android.gms:play-services-base@@17.5.0:2)
        at com.google.android.gms.common.api.internal.zah.zaa(com.google.android.gms:play-services-base@@17.5.0:9)
        at com.google.android.gms.common.api.internal.GoogleApiManager$zaa.zac(com.google.android.gms:play-services-base@@17.5.0:193)
        at com.google.android.gms.common.api.internal.GoogleApiManager$zaa.zab(com.google.android.gms:play-services-base@@17.5.0:158)
        at com.google.android.gms.common.api.internal.GoogleApiManager$zaa.zaa(com.google.android.gms:play-services-base@@17.5.0:126)
        at com.google.android.gms.common.api.internal.GoogleApiManager.handleMessage(com.google.android.gms:play-services-base@@17.5.0:164)
        at android.os.Handler.dispatchMessage(Handler.java:103)
        at android.os.Looper.loop(Looper.java:214)
        at android.os.HandlerThread.run(HandlerThread.java:67)

Was fine with all previous versions up to 119.3.2

Fixed by adding the following to proguard.cfg, but suspect that is a bit of an overkill.

-keep class com.google.android.gms.internal.** { *; }

aab size with crash 23,933kb, after adding above increases to 24,102kb

nbevans commented 3 years ago

Yup, getting similar here:

01-21 20:12:51.988  8981  8981 I MonoDroid: UNHANDLED EXCEPTION:
01-21 20:12:51.991  8981  8981 I MonoDroid: Java.Lang.RuntimeException: Unable to instantiate service com.google.firebase.auth.api.fallback.service.FirebaseAuthFallbackService: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.auth.api.fallback.service.FirebaseAuthFallbackService" on path: DexPathList[[zip file "/data/app/singapore.mobile.android-ADs-y3OVFAIr-ASYzvUg8w==/base.apk"],nativeLibraryDirectories=[/data/app/singapore.mobile.android-ADs-y3OVFAIr-ASYzvUg8w==/lib/x86, /data/app/singapore.mobile.android-ADs-y3OVFAIr-ASYzvUg8w==/base.apk!/lib/x86, /system/lib, /system/product/lib]] ---> Java.Lang.ClassNotFoundException: Didn't find class "com.google.firebase.auth.api.fallback.service.FirebaseAuthFallbackService" on path: DexPathList[[zip file "/data/app/singapore.mobile.android-ADs-y3OVFAIr-ASYzvUg8w==/base.apk"],nativeLibraryDirectories=[/data/app/singapore.mobile.android-ADs-y3OVFAIr-ASYzvUg8w==/lib/x86, /data/app/singapore.mobile.android-ADs-y3OVFAIr-ASYzvUg8w==/base.apk!/lib/x86, /system/lib, /system/product/lib]]
01-21 20:12:51.991  8981  8981 I MonoDroid:    --- End of inner exception stack trace ---
01-21 20:12:51.991  8981  8981 I MonoDroid:   --- End of managed Java.Lang.RuntimeException stack trace ---
01-21 20:12:51.991  8981  8981 I MonoDroid: java.lang.RuntimeException: Unable to instantiate service com.google.firebase.auth.api.fallback.service.FirebaseAuthFallbackService: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.auth.api.fallback.service.FirebaseAuthFallbackService" on path: DexPathList[[zip file "/data/app/singapore.mobile.android-ADs-y3OVFAIr-ASYzvUg8w==/base.apk"],nativeLibraryDirectories=[/data/app/singapore.mobile.android-ADs-y3OVFAIr-ASYzvUg8w==/lib/x86, /data/app/singapore.mobile.android-ADs-y3OVFAIr-ASYzvUg8w==/base.apk!/lib/x86, /system/lib, /system/product/lib]]
01-21 20:12:51.991  8981  8981 I MonoDroid:     at android.app.ActivityThread.handleCreateService(ActivityThread.java:3940)
01-21 20:12:51.991  8981  8981 I MonoDroid:     at android.app.ActivityThread.access$1500(ActivityThread.java:219)
01-21 20:12:51.991  8981  8981 I MonoDroid:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1875)
01-21 20:12:51.991  8981  8981 I MonoDroid:     at android.os.Handler.dispatchMessage(Handler.java:107)
01-21 20:12:51.991  8981  8981 I MonoDroid:     at android.os.Looper.loop(Looper.java:214)
01-21 20:12:51.991  8981  8981 I MonoDroid:     at android.app.ActivityThread.main(ActivityThread.java:7356)
01-21 20:12:51.991  8981  8981 I MonoDroid:     at java.lang.reflect.Method.invoke(Native Method)
01-21 20:12:51.991  8981  8981 I MonoDroid:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
01-21 20:12:51.991  8981  8981 I MonoDroid:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
01-21 20:12:51.991  8981  8981 I MonoDroid: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.auth.api.fallback.service.FirebaseAuthFallbackService" on path: DexPathList[[zip file "/data/app/singapore.mobile.android-ADs-y3OVFAIr-ASYzvUg8w==/base.apk"],nativeLibraryDirectories=[/data/app/singapore.mobile.android-ADs-y3OVFAIr-ASYzvUg8w==/lib/x86, /data/app/singapore.mobile.android-ADs-y3OVFAIr-ASYzvUg8w==/base.apk!/lib/x86, /system/lib, /system/product/lib]]
01-21 20:12:51.991  8981  8981 I MonoDroid:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
01-21 20:12:51.991  8981  8981 I MonoDroid:     at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
01-21 20:12:51.991  8981  8981 I MonoDroid:     at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
01-21 20:12:51.991  8981  8981 I MonoDroid:     at android.app.AppComponentFactory.instantiateService(AppComponentFactory.java:129)
01-21 20:12:51.991  8981  8981 I MonoDroid:     at androidx.core.app.CoreComponentFactory.instantiateService(Unknown Source:0)
01-21 20:12:51.991  8981  8981 I MonoDroid:     at android.app.ActivityThread.handleCreateService(ActivityThread.java:3935)
01-21 20:12:51.991  8981  8981 I MonoDroid:     ... 8 more
01-21 20:12:51.991  8981  8981 I MonoDroid:

I downgraded the Xamarin.Firebase.Auth as follows and problem went away.

image

Seems that something in the latest version isn't properly attributed to avoid the linker.