Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DynamicLinkData class not initializable due to AbstractSafeParcelable->findCreator not finding the creator for the class. #2596

Open
derMart opened this issue Oct 26, 2024 · 1 comment · May be fixed by #2615
Labels

Comments

@derMart
Copy link
Contributor

derMart commented Oct 26, 2024

Describe the bug

A while ago I created a pull request #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 zainarbani@ce0802d 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

  1. Open a dynamic "email login link" with the appropriate app, which is internally using firebase dynamic links
  2. microg crashes

Expected behavior
Microg should not crash and pass the link data to the app

System
Android Version: 14
Custom ROM: LineageOS 21

@derMart derMart added the bug label Oct 26, 2024
@derMart
Copy link
Contributor Author

derMart commented Oct 26, 2024

Sorry @zainarbani, it was @marvin who refactored via 3ccb5f4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
1 participant