java - Firestore错误

标签 java android firebase google-cloud-firestore

我将转而在 Android 应用上使用 Firestore(来自 Firebase 实时数据库)。我遇到了一个很难确定的问题。 这是 logcat 的错误:

07-14 20:42:32.565 13093-13093/com.aayaffe.sailingracecoursemanager E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.aayaffe.sailingracecoursemanager, PID: 13093
    java.lang.RuntimeException: Internal error in Firestore (0.6.6-dev).
        at com.google.firebase.firestore.g.zza.zzb(SourceFile:324)
        at com.google.firebase.firestore.g.zzd.run(Unknown Source)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:158)
        at android.app.ActivityThread.main(ActivityThread.java:7224)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
     Caused by: java.lang.NoClassDefFoundError: com.google.common.base.CharMatcher
        at com.google.common.base.Splitter.on(Splitter.java:119)
        at io.grpc.internal.GrpcUtil.<clinit>(GrpcUtil.java:200)
        at io.grpc.internal.AbstractManagedChannelImplBuilder.<clinit>(AbstractManagedChannelImplBuilder.java:81)
        at io.grpc.okhttp.OkHttpChannelBuilder.forTarget(OkHttpChannelBuilder.java:137)
        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:70)
        at com.google.firebase.firestore.f.zzd.<init>(SourceFile:88)
        at com.google.firebase.firestore.b.zzf.zza(SourceFile:1217)
        at com.google.firebase.firestore.b.zzh.run(Unknown Source)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
        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 com.google.firebase.firestore.g.zza$zza.run(SourceFile:190)
        at java.lang.Thread.run(Thread.java:818)

这个问题显然是在尝试从数据库读取时发生的,但我不确定。

我发现了一件事。 该问题发生在 Android 版本 6.0.1 上,但未出现在 Android 版本 8.0.0 上

使用的库:

implementation 'com.android.support:customtabs:26.1.0'
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support:cardview-v7:26.1.0'
implementation 'com.google.android.gms:play-services-location:15.0.1'
implementation 'com.google.android.gms:play-services-auth:15.0.1'
implementation 'com.google.android.gms:play-services-maps:15.0.1'
implementation 'com.google.firebase:firebase-database:16.0.1'
implementation 'com.google.firebase:firebase-auth:16.0.2'
implementation 'com.google.firebase:firebase-storage:16.0.1'
implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-firestore:17.0.2'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.4'
implementation 'com.firebaseui:firebase-ui-database:4.0.1'
implementation 'com.firebaseui:firebase-ui-auth:4.0.1'
implementation 'com.google.guava:guava:22.0'
implementation 'org.jetbrains:annotations-java5:15.0'
implementation 'com.borax12.materialdaterangepicker:library:1.9'
implementation 'com.tenmiles:helpstack:1.2.0'
implementation 'io.doorbell:android-sdk:0.2.8@aar'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'

最佳答案

感谢@DougStevenson,这就是答案:

CharMatcher 是 Guava 的一部分。 Firestore 依赖于版本 20.0,但您正在引入 22.0。

将 Guava 的要求降低至 20.0。 (另请参阅 ./gradlew :app:dependencies 的输出)

关于java - Firestore错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51341989/

相关文章:

java - 从数据库加载 FreeMarker 模板

java - 在 java 中访问 digitalocean 液滴信息的简单程序

java - 如果否则-如果不工作

Firebase 电子邮件验证 Flutter

android - 如何将MySQL数据发送到fire-base数据库?

java - Spring MVC 多行表单提交提交新的 ModelAttribute

java - 什么存储在堆上,什么存储在堆栈上?

android - 如何使用百度 map SDK实现点聚类?

android SQLite 没有这样的表(代码 1)错误

javascript - 从 Firebase 数据库填充 Firebase Cloud Functions 中的数组