android - Android 6 和 5 上的 Firebase InApp 消息传递崩溃

标签 android firebase noclassdeffounderror firebase-in-app-messaging

我的应用程序在打开时因此错误而崩溃,仅在 Android 6 和 Android 5 上:

io.reactivex.exceptions.UndeliverableException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/common/base/CharMatcher;
        at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
        at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:69)
        at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
        at java.lang.Thread.run(Thread.java:818)
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/common/base/CharMatcher;
        at com.google.common.base.Splitter.on(Splitter.java:125)
        at io.grpc.internal.GrpcUtil.<clinit>(GrpcUtil.java:203)
        at io.grpc.internal.AbstractManagedChannelImplBuilder.<clinit>(AbstractManagedChannelImplBuilder.java:84)
        at io.grpc.okhttp.OkHttpChannelProvider.builderForTarget(OkHttpChannelProvider.java:48)
        at io.grpc.okhttp.OkHttpChannelProvider.builderForTarget(OkHttpChannelProvider.java:27)
        at io.grpc.ManagedChannelBuilder.forTarget(ManagedChannelBuilder.java:73)
        at com.google.firebase.inappmessaging.internal.injection.modules.GrpcChannelModule.providesGrpcChannel(com.google.firebase:firebase-inappmessaging@@19.0.3:41)
        at com.google.firebase.inappmessaging.internal.injection.modules.GrpcChannelModule_ProvidesGrpcChannelFactory.providesGrpcChannel(com.google.firebase:firebase-inappmessaging@@19.0.3:39)
        at com.google.firebase.inappmessaging.internal.injection.modules.GrpcChannelModule_ProvidesGrpcChannelFactory.get(com.google.firebase:firebase-inappmessaging@@19.0.3:30)
        at com.google.firebase.inappmessaging.internal.injection.modules.GrpcChannelModule_ProvidesGrpcChannelFactory.get(com.google.firebase:firebase-inappmessaging@@19.0.3:9)
        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
        at com.google.firebase.inappmessaging.internal.injection.components.DaggerUniversalComponent.gRPCChannel(com.google.firebase:firebase-inappmessaging@@19.0.3:188)
        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.3:295)
        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.3:285)
        at com.google.firebase.inappmessaging.internal.injection.modules.GrpcClientModule_ProvidesInAppMessagingSdkServingStubFactory.get(com.google.firebase:firebase-inappmessaging@@19.0.3:35)
        at com.google.firebase.inappmessaging.internal.injection.modules.GrpcClientModule_ProvidesInAppMessagingSdkServingStubFactory.get(com.google.firebase:firebase-inappmessaging@@19.0.3:11)
        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
        at com.google.firebase.inappmessaging.internal.GrpcClient_Factory.get(com.google.firebase:firebase-inappmessaging@@19.0.3:26)
        at com.google.firebase.inappmessaging.internal.GrpcClient_Factory.get(com.google.firebase:firebase-inappmessaging@@19.0.3:8)
        at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
        at com.google.firebase.inappmessaging.internal.ApiClient.getFiams(com.google.firebase:firebase-inappmessaging@@19.0.3:101)
        at com.google.firebase.inappmessaging.internal.InAppMessageStreamManager.lambda$createFirebaseInAppMessageStream$16(com.google.firebase:firebase-inappmessaging@@19.0.3:231)
        at com.google.firebase.inappmessaging.internal.InAppMessageStreamManager$$Lambda$22.call(com.google.firebase:firebase-inappmessaging@@19.0.3)
        at io.reactivex.internal.operators.maybe.M

这是我的毕业设置:
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {

    ...

    minSdkVersion 21
    targetSdkVersion 28

    ...

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
    multiDexEnabled true

}

我正在使用最新版本的 Firebase InApp 消息传递
implementation 'com.google.firebase:firebase-inappmessaging-display:19.0.3'
我已经发现了这些问题,但没有解决方案:
  • https://github.com/firebase/firebase-android-sdk/issues/630
  • https://github.com/firebase/firebase-android-sdk/issues/1124

  • 有没有人有同样的问题?

    更新

    我解决了将 Google Guava 库添加到 gradle 的问题
    implementation "com.google.guava:guava:28.2-android"

    最佳答案

    Use the below dependency to fix the issue



    要使用 Gradle 添加依赖项,请使用以下命令:
    implementation "com.google.guava:guava:28.2-android"
    

    对于最新的 Guava 库,请参阅 documentation .

    关于android - Android 6 和 5 上的 Firebase InApp 消息传递崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60562360/

    相关文章:

    javascript - 使用 Promise 传递参数 VUE

    java - 从 Eclipse 启动时出现 NoClassDefFoundError,但在 Ant 中工作正常

    android - java.lang.NoClassDefFoundError : android/graphics/drawable/Icon 错误

    android - Facebook 登录按钮处理

    android - Cocos2dx 安卓构建错误: "arm-linux-androideabi-g++: No such file or directory"

    java - 为什么我的 android 应用程序读取 åäö 而我的 java 应用程序却没有(从 GAE 获取数据时)?

    sql - Firebase 与 Laravel 的 Google Cloud SQL

    javascript - react native /Firebase : Pushing data from multiple ".on" calls

    线程 "main"java.lang.NoClassDefFoundError : javafx/application/Application 中的 JavaFX 异常

    android - Fragment 到 Activity 过渡