A while ago I created a pull request https://github.com/microg/GmsCore/pull/2297 to improve / fix firebase dynamic link authentication. Back then I tried the login mechanism on my local version. Just now I tried to login in an app using the official microg release and encountered this exception:
10-26 11:16:19.939 27309 27338 E JavaBinder: *** Uncaught remote exception! Exceptions are not yet supported across processes. Client PID 27037 UID 10196.
10-26 11:16:19.939 27309 27338 E JavaBinder: java.lang.ExceptionInInitializerError
10-26 11:16:19.939 27309 27338 E JavaBinder: at org.microg.gms.firebase.dynamiclinks.DynamicLinksServiceImpl.getDynamicLink(DynamicLinksServiceImpl.java:48)
10-26 11:16:19.939 27309 27338 E JavaBinder: at com.google.firebase.dynamiclinks.internal.IDynamicLinksService$Stub.onTransact(IDynamicLinksService.java:70)
10-26 11:16:19.939 27309 27338 E JavaBinder: at org.microg.gms.firebase.dynamiclinks.DynamicLinksServiceImpl.onTransact(DynamicLinksServiceImpl.java:75)
10-26 11:16:19.939 27309 27338 E JavaBinder: at android.os.Binder.execTransactInternal(Binder.java:1500)
10-26 11:16:19.939 27309 27338 E JavaBinder: at android.os.Binder.execTransact(Binder.java:1444)
10-26 11:16:19.939 27309 27338 E JavaBinder: Caused by: java.lang.RuntimeException: No Creator found for com.google.firebase.dynamiclinks.internal.DynamicLinkData
10-26 11:16:19.939 27309 27338 E JavaBinder: at com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable.findCreator(AbstractSafeParcelable.java:21)
10-26 11:16:19.939 27309 27338 E JavaBinder: at com.google.firebase.dynamiclinks.internal.DynamicLinkData.<clinit>(DynamicLinkData.java:65)
10-26 11:16:19.939 27309 27338 E JavaBinder: ... 5 more
10-26 11:16:19.939 27309 27338 E JavaBinder: Caused by: java.lang.ClassNotFoundException: com.google.firebase.dynamiclinks.internal.DynamicLinkData$000Creator
10-26 11:16:19.939 27309 27338 E JavaBinder: at java.lang.Class.classForName(Native Method)
10-26 11:16:19.939 27309 27338 E JavaBinder: at java.lang.Class.forName(Class.java:607)
10-26 11:16:19.939 27309 27338 E JavaBinder: at java.lang.Class.forName(Class.java:512)
10-26 11:16:19.939 27309 27338 E JavaBinder: at com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable.findCreator(AbstractSafeParcelable.java:19)
10-26 11:16:19.939 27309 27338 E JavaBinder: ... 6 more
10-26 11:16:19.939 27309 27338 E JavaBinder: Caused by: java.lang.ClassNotFoundException: com.google.firebase.dynamiclinks.internal.DynamicLinkData$000Creator
10-26 11:16:19.939 27309 27338 E JavaBinder: ... 10 more
10-26 11:16:19.940 27309 27338 E AndroidRuntime: FATAL EXCEPTION: binder:27309_4
10-26 11:16:19.940 27309 27338 E AndroidRuntime: Process: com.google.android.gms, PID: 27309
10-26 11:16:19.940 27309 27338 E AndroidRuntime: java.lang.ExceptionInInitializerError
10-26 11:16:19.940 27309 27338 E AndroidRuntime: at org.microg.gms.firebase.dynamiclinks.DynamicLinksServiceImpl.getDynamicLink(DynamicLinksServiceImpl.java:48)
10-26 11:16:19.940 27309 27338 E AndroidRuntime: at com.google.firebase.dynamiclinks.internal.IDynamicLinksService$Stub.onTransact(IDynamicLinksService.java:70)
10-26 11:16:19.940 27309 27338 E AndroidRuntime: at org.microg.gms.firebase.dynamiclinks.DynamicLinksServiceImpl.onTransact(DynamicLinksServiceImpl.java:75)
10-26 11:16:19.940 27309 27338 E AndroidRuntime: at android.os.Binder.execTransactInternal(Binder.java:1500)
10-26 11:16:19.940 27309 27338 E AndroidRuntime: at android.os.Binder.execTransact(Binder.java:1444)
10-26 11:16:19.940 27309 27338 E AndroidRuntime: Caused by: java.lang.RuntimeException: No Creator found for com.google.firebase.dynamiclinks.internal.DynamicLinkData
10-26 11:16:19.940 27309 27338 E AndroidRuntime: at com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable.findCreator(AbstractSafeParcelable.java:21)
10-26 11:16:19.940 27309 27338 E AndroidRuntime: at com.google.firebase.dynamiclinks.internal.DynamicLinkData.<clinit>(DynamicLinkData.java:65)
10-26 11:16:19.940 27309 27338 E AndroidRuntime: ... 5 more
10-26 11:16:19.940 27309 27338 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: com.google.firebase.dynamiclinks.internal.DynamicLinkData$000Creator
10-26 11:16:19.940 27309 27338 E AndroidRuntime: at java.lang.Class.classForName(Native Method)
10-26 11:16:19.940 27309 27338 E AndroidRuntime: at java.lang.Class.forName(Class.java:607)
10-26 11:16:19.940 27309 27338 E AndroidRuntime: at java.lang.Class.forName(Class.java:512)
10-26 11:16:19.940 27309 27338 E AndroidRuntime: at com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable.findCreator(AbstractSafeParcelable.java:19)
10-26 11:16:19.940 27309 27338 E AndroidRuntime: ... 6 more
10-26 11:16:19.940 27309 27338 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: com.google.firebase.dynamiclinks.internal.DynamicLinkData$000Creator
10-26 11:16:19.940 27309 27338 E AndroidRuntime: ... 10 more
So AbstractSafeParcelable.findCreator() is not finding the com.google.firebase.dynamiclinks.internal.DynamicLinkData$000Creator class, which, suggesting from the name could be some auto generated class.
@zainarbani I do see that you committed https://github.com/zainarbani/GmsCore/commit/ce0802da285b9ebc2bda5bd12b82ec678e752a6b in the pull request to change DynamicLinkData to extend from AbstractSafeParcelable instead of AutoSafeParcelable. Myself not familiar with these two Parcelable mechanisms, may it be possible that something is missing for the AbstractSafeParcelable to work?
To Reproduce
Open a dynamic "email login link" with the appropriate app, which is internally using firebase dynamic links
microg crashes
Expected behavior
Microg should not crash and pass the link data to the app
System
Android Version: 14
Custom ROM: LineageOS 21
Describe the bug
A while ago I created a pull request https://github.com/microg/GmsCore/pull/2297 to improve / fix firebase dynamic link authentication. Back then I tried the login mechanism on my local version. Just now I tried to login in an app using the official microg release and encountered this exception:
So
AbstractSafeParcelable.findCreator()
is not finding thecom.google.firebase.dynamiclinks.internal.DynamicLinkData$000Creator
class, which, suggesting from the name could be some auto generated class.@zainarbani I do see that you committed https://github.com/zainarbani/GmsCore/commit/ce0802da285b9ebc2bda5bd12b82ec678e752a6b in the pull request to change DynamicLinkData to extend from AbstractSafeParcelable instead of AutoSafeParcelable. Myself not familiar with these two Parcelable mechanisms, may it be possible that something is missing for the AbstractSafeParcelable to work?
To Reproduce
Expected behavior Microg should not crash and pass the link data to the app
System Android Version: 14 Custom ROM: LineageOS 21