xamarin / GooglePlayServicesComponents

Other
314 stars 146 forks source link

Crash at runtime with Firebase InAppMessaging #395

Open johnthiriet opened 3 years ago

johnthiriet commented 3 years ago

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

InAppMessager Sample.zip

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)
basilkurianmb commented 3 years ago

@johnthiriet Did you got any solution/workaround for this issue?

johnthiriet commented 3 years ago

No, nothing. I dropped the subject as it was a spike on my side. Marked as non conclusive for now.

AlejandroLemusR commented 2 years ago

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?