Crash at runtime with Firebase InAppMessaging
Xamarin.Android Version (eg: 6.0):
Version: 11.0.2.0
Operating System & Version (eg: Mac OSX 10.11):
Mac OS X 10.15.7
Google Play Services Version
Xamarin.Firebase.InAppMessaging.Display 119.0.6
Describe your Issue
I have a crash at runtime when using InAppMessaging Display package. It happens in debug mode so it is not linked to the linker. I have added what seemed to be like the necessary dependencies. Unfortunately I did not find a way around this. I joined a sample project.
Do you have any idea ?
Relevant information
Packages used:
<PackageReference Include="Xamarin.Essentials" Version="1.5.3.2" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.0.0.1" />
<PackageReference Include="Xamarin.Firebase.InAppMessaging.Display">
<Version>119.0.6</Version>
</PackageReference>
<PackageReference Include="Xamarin.Firebase.Analytics">
<Version>117.4.1</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.ExifInterface">
<Version>1.1.0.5</Version>
</PackageReference>
Build settings (tools) Debug mode.
Minimal Repro Code Sample
Steps to Reproduce (with link to sample solution if possible):
Add you google play services.json Add your keystore Run and it will crash just after startup.
Include any relevant Exception Stack traces, build logs, adb logs:
[System.err] io.reactivex.exceptions.UndeliverableException: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/common/base/Preconditions;
[System.err] at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
[System.err] at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:69)
[System.err] at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
[System.err] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[System.err] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
[System.err] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
[System.err] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
[System.err] at java.lang.Thread.run(Thread.java:919)
[System.err] Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/common/base/Preconditions;
[System.err] at io.grpc.Metadata$Key.<init>(Metadata.java:636)
[System.err] at io.grpc.Metadata$Key.<init>(Metadata.java:567)
[System.err] at io.grpc.Metadata$AsciiKey.<init>(Metadata.java:742)
[System.err] at io.grpc.Metadata$AsciiKey.<init>(Metadata.java:737)
[System.err] at io.grpc.Metadata$Key.of(Metadata.java:593)
[System.err] at io.grpc.Metadata$Key.of(Metadata.java:589)
[System.err] at io.grpc.internal.GrpcUtil.<clinit>(GrpcUtil.java:86)
[System.err] at io.grpc.internal.AbstractManagedChannelImplBuilder.<clinit>(AbstractManagedChannelImplBuilder.java:84)
[System.err] at io.grpc.okhttp.OkHttpChannelBuilder.forTarget(OkHttpChannelBuilder.java:119)
[System.err] at io.grpc.okhttp.OkHttpChannelProvider.builderForTarget(OkHttpChannelProvider.java:48)
[System.err] at io.grpc.okhttp.OkHttpChannelProvider.builderForTarget(OkHttpChannelProvider.java:27)
[System.err] at io.grpc.ManagedChannelBuilder.forTarget(ManagedChannelBuilder.java:73)
[System.err] at com.google.firebase.inappmessaging.internal.injection.modules.GrpcChannelModule.providesGrpcChannel(com.google.firebase:firebase-inappmessaging@@19.0.6:41)
[System.err] at com.google.firebase.inappmessaging.internal.injection.modules.GrpcChannelModule_ProvidesGrpcChannelFactory.providesGrpcChannel(com.google.firebase:firebase-inappmessaging@@19.0.6:39)
[System.err] at com.google.firebase.inappmessaging.internal.injection.modules.GrpcChannelModule_ProvidesGrpcChannelFactory.get(com.google.firebase:firebase-inappmessaging@@19.0.6:30)
[System.err] at com.google.firebase.inappmessaging.internal.injection.modules.GrpcChannelModule_ProvidesGrpcChannelFactory.get(com.google.firebase:firebase-inappmessaging@@19.0.6:9)
[System.err] at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
[System.err] at com.google.firebase.inappmessaging.internal.injection.components.DaggerUniversalComponent.gRPCChannel(com.google.firebase:firebase-inappmessaging@@19.0.6:180)
[System.err] at com.google.firebase.inappmessaging.internal.injection.components.DaggerAppComponent$com_google_firebase_inappmessaging_internal_injection_components_UniversalComponent_gRPCChannel.get(com.google.firebase:firebase-inappmessaging@@19.0.6:309)
[System.err] at com.google.firebase.inappmessaging.internal.injection.components.DaggerAppComponent$com_google_firebase_inappmessaging_internal_injection_components_UniversalComponent_gRPCChannel.get(com.google.firebase:firebase-inappmessaging@@19.0.6:299)
[System.err] at com.google.firebase.inappmessaging.internal.injection.modules.GrpcClientModule_ProvidesInAppMessagingSdkServingStubFactory.get(com.google.firebase:firebase-inappmessaging@@19.0.6:35)
[System.err] at com.google.firebase.inappmessaging.internal.injection.modules.GrpcClientModule_ProvidesInAppMessagingSdkServingStubFactory.get(com.google.firebase:firebase-inappmessaging@@19.0.6:11)
[System.err] at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
[System.err] at com.google.firebase.inappmessaging.internal.GrpcClient_Factory.get(com.google.firebase:firebase-inappmessaging@@19.0.6:26)
[System.err] at com.google.firebase.inappmessaging.internal.GrpcClient_Factory.get(com.google.firebase:firebase-inappmessaging@@19.0.6:8)
[System.err] at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
[System.err] at com.google.firebase.inappmessaging.internal.ApiClient.getFiams(com.google.firebase:firebase-inappmessaging@@19.0.6:73)
[System.err] at com.google.firebase.inappmessaging.internal.InAppMessageStreamManager.lambda$createFirebaseInAppMessageStream$16(com.google.firebase:firebase-inappmessaging@@19.0.6:260)
[System.err] at com.google.firebase.inappmessaging.internal.InAppMessageStreamManager$$Lambda$25.apply(Unknown Source:6)
[System.err] at io.reactivex.internal.operators.maybe.MaybeMap$MapMaybeObserver.onSuccess(MaybeMap.java:82)
[System.err] at io.reactivex.internal.operators.maybe.MaybeFilter$FilterMaybeObserver.onSuccess(MaybeFilter.java:89)
[System.err] at io.reactivex.internal.operators.maybe.MaybeObserveOn$ObserveOnMaybeObserver.run(MaybeObserveOn.java:103)
[System.err] at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
[System.err] at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
[System.err] ... 6 more
[System.err] Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.common.base.Preconditions" on path: DexPathList[[zip file "/data/app/com.mysample.myapp-dQGM_6UB8TDKNx1SrZgM7w==/base.apk"],nativeLibraryDirectories=[/data/app/com.mysample.myapp-dQGM_6UB8TDKNx1SrZgM7w==/lib/arm64, /data/app/com.mysample.myapp-dQGM_6UB8TDKNx1SrZgM7w==/base.apk!/lib/arm64-v8a, /system/lib64]]
[System.err] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
[System.err] at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
[System.err] at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
@johnthiriet Did you got any solution/workaround for this issue?
No, nothing. I dropped the subject as it was a spike on my side. Marked as non conclusive for now.
I have a crash at runtime when using InAppMessaging Display package. It happens in debug mode so it is not linked to the linker. I have added what seemed to be like the necessary dependencies. Unfortunately I did not find a way around this. I joined a sample project.
Do you have any idea ?
Did you find a solution?