maui: Error running MAUI Blazor Application (.Net 6) using Xamarin.Firebase.Messaging
Description
I try to create a MAUI Blazor Application which can receive and send push notifications. I don’t found good documentation that resolves my problem. For this reason, I try to configure my application using the Xamarin documentation from this website.
When I finish configuring the app as in “steps to reproduce” is defined, the IDE throws the error defined in “Relevant log output” section.
Steps to Reproduce
- Create a new .NET MAUI Blazor Application project, using Visual Studio 2022(preview) & .net 6.
- Add NuGet packages to work with Firebase:
- Xamarin.GooglePlayServices.Base (version 118.0.1.1)
- Xamarin.Firebase.Messaging (version 122.0.0.6)
- Download from Firebase Console google-services.json file and include that file into project root.
- Change property “Compilation Action” of JSON file to “GoogleServiceJson”.
- Run application in “Pixel 5 - API 30 (Android 11.0 - API 30)”
- When the app starts to run in the environment, the IDE throws:
Java.Lang.NoClassDefFoundError: 'Failed resolution of: Lcom/google/android/datatransport/TransportFactory;'
Version with bug
6.0.400 (current)
Last version that worked well
Unknown/Other
Affected platforms
Android
Affected platform versions
Android 11
Did you find any workaround?
No response
Relevant log output
[MonoDroid] UNHANDLED EXCEPTION:
[MonoDroid] Java.Lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/datatransport/TransportFactory;
[MonoDroid] ---> Java.Lang.ClassNotFoundException: Didn't find class "com.google.android.datatransport.TransportFactory" on path: DexPathList[[zip file "/data/app/~~0yd9fpj-0FFrqbciHFeH4Q==/com.companyname.mauiapp2blazor-OVinhY9xrXH32TwCwxM1Zw==/base.apk"],nativeLibraryDirectories=[/data/app/~~0yd9fpj-0FFrqbciHFeH4Q==/com.companyname.mauiapp2blazor-OVinhY9xrXH32TwCwxM1Zw==/lib/x86_64, /data/app/~~0yd9fpj-0FFrqbciHFeH4Q==/com.companyname.mauiapp2blazor-OVinhY9xrXH32TwCwxM1Zw==/base.apk!/lib/x86_64, /system/lib64, /system_ext/lib64]]
[MonoDroid]
[MonoDroid] --- End of managed Java.Lang.ClassNotFoundException stack trace ---
[MonoDroid] java.lang.ClassNotFoundException: Didn't find class "com.google.android.datatransport.TransportFactory" on path: DexPathList[[zip file "/data/app/~~0yd9fpj-0FFrqbciHFeH4Q==/com.companyname.mauiapp2blazor-OVinhY9xrXH32TwCwxM1Zw==/base.apk"],nativeLibraryDirectories=[/data/app/~~0yd9fpj-0FFrqbciHFeH4Q==/com.companyname.mauiapp2blazor-OVinhY9xrXH32TwCwxM1Zw==/lib/x86_64, /data/app/~~0yd9fpj-0FFrqbciHFeH4Q==/com.companyname.mauiapp2blazor-OVinhY9xrXH32TwCwxM1Zw==/base.apk!/lib/x86_64, /system/lib64, /system_ext/lib64]]
[MonoDroid] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
[MonoDroid] at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
[MonoDroid] at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
[MonoDroid] at com.google.firebase.datatransport.TransportRegistrar.getComponents(TransportRegistrar.java:32)
[MonoDroid] at com.google.firebase.components.ComponentRuntime.discoverComponents(ComponentRuntime.java:109)
[MonoDroid] at com.google.firebase.components.ComponentRuntime.<init>(ComponentRuntime.java:91)
[MonoDroid] at com.google.firebase.components.ComponentRuntime.<init>(ComponentRuntime.java:45)
[MonoDroid] at com.google.firebase.components.ComponentRuntime$Builder.build(ComponentRuntime.java:360)
[MonoDroid] at com.google.firebase.FirebaseApp.<init>(FirebaseApp.java:427)
[MonoDroid] at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:299)
[MonoDroid] at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:267)
[MonoDroid] at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:252)
[MonoDroid] at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:51)
[MonoDroid] at android.content.ContentProvider.attachInfo(ContentProvider.java:2388)
[MonoDroid] at android.content.ContentProvider.attachInfo(ContentProvider.java:2358)
[MonoDroid] at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:45)
[MonoDroid] at android.app.ActivityThread.installProvider(ActivityThread.java:7239)
[MonoDroid] at android.app.ActivityThread.installContentProviders(ActivityThread.java:6780)
[MonoDroid] at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6697)
[MonoDroid] at android.app.ActivityThread.access$1300(ActivityThread.java:237)
[MonoDroid] at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
[MonoDroid] at android.os.Handler.dispatchMessage(Handler.java:106)
[MonoDroid] at android.os.Looper.loop(Looper.java:223)
[MonoDroid] at android.app.ActivityThread.main(ActivityThread.java:7656)
[MonoDroid] at java.lang.reflect.Method.invoke(Native Method)
[MonoDroid] at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
[MonoDroid] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
[MonoDroid]
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Reactions: 2
- Comments: 15 (7 by maintainers)
I’ve heard from people they have got this working but I see the package versions are slightly lower, see: https://gist.github.com/jfversluis/dd760594099066c7450d50cce6499368
Would you be able to maybe try those and see if that helps? If so, then it must be something that was introduced recently.
Does this only happen on Debug or Release or both? Are you using Proguard or any linker settings?
@jonathanpeppers?
Any updates?