android - 错误 : java. lang.ClassNotFoundException : Didn't find class "com. google.firebase.firestore.local.SQLiteSchema

标签 android firebase google-cloud-firestore

在物理 android API 24 上运行时出现以下错误:

  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.OkHttpChannelBuilder.forTarget(OkHttpChannelBuilder.java:119)
        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.firestore.remote.GrpcCallProvider.initChannel(com.google.firebase:firebase-firestore@@21.1.1:92)
        at com.google.firebase.firestore.remote.GrpcCallProvider.lambda$new$0(com.google.firebase:firebase-firestore@@21.1.1:62)
        at com.google.firebase.firestore.remote.GrpcCallProvider$$Lambda$1.call(com.google.firebase:firebase-firestore@@21.1.1)
        at com.google.android.gms.tasks.zzv.run(Unknown Source)
        at com.google.firebase.firestore.util.ThrottledForwardingExecutor.lambda$execute$0(com.google.firebase:firebase-firestore@@21.1.1:54)
        at com.google.firebase.firestore.util.ThrottledForwardingExecutor$$Lambda$1.run(com.google.firebase:firebase-firestore@@21.1.1)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:818)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.common.base.CharMatcher" on path: DexPathList[[zip file "/data/app/com.byte_artisan.mchat2-1/base.apk"],nativeLibraryDirectories=[/data/app/com.byte_artisan.mchat2-1/lib/arm, /vendor/lib, /system/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
        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.OkHttpChannelBuilder.forTarget(OkHttpChannelBuilder.java:119) 
        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.firestore.remote.GrpcCallProvider.initChannel(com.google.firebase:firebase-firestore@@21.1.1:92) 
        at com.google.firebase.firestore.remote.GrpcCallProvider.lambda$new$0(com.google.firebase:firebase-firestore@@21.1.1:62) 
        at com.google.firebase.firestore.remote.GrpcCallProvider$$Lambda$1.call(com.google.firebase:firebase-firestore@@21.1.1) 
        at com.google.android.gms.tasks.zzv.run(Unknown Source) 
        at com.google.firebase.firestore.util.ThrottledForwardingExecutor.lambda$execute$0(com.google.firebase:firebase-firestore@@21.1.1:54) 
        at com.google.firebase.firestore.util.ThrottledForwardingExecutor$$Lambda$1.run(com.google.firebase:firebase-firestore@@21.1.1) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
        at java.lang.Thread.run(Thread.java:818) 
        Suppressed: java.lang.NoClassDefFoundError: com.google.common.base.CharMatcher
        at dalvik.system.DexFile.defineClassNative(Native Method)
        at dalvik.system.DexFile.defineClass(DexFile.java:226)
        at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
        at dalvik.system.DexPathList.findClass(DexPathList.java:321)
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
                ... 18 more
        Suppressed: java.lang.ClassNotFoundException: com.google.common.base.CharMatcher
        at java.lang.Class.classForName(Native Method)
        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                ... 17 more
     Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

观察堆栈,错误似乎来自于firestore初始化。

在最近更新 firebase 库后,错误开始出现,不能用一个或一个版本精确。此外,该应用程序在最新版本的 Android 中启动良好。

最佳答案

根据 github 上的这篇长文,问题是与 guava 库发生冲突.

为了修复,我需要将 Guava 版本从“28.0-jre”更改为“28.0-android”,如下所示:

implementation group: 'com.google.guava', name: 'guava', version: '28.1-android'

希望可以节省几个小时。

关于android - 错误 : java. lang.ClassNotFoundException : Didn't find class "com. google.firebase.firestore.local.SQLiteSchema,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58294726/

相关文章:

firebase - 如何在 Firebase 中为社交登录创建包装器 REST API?

java - 如何在 Firestore 中使用 POJO 更新所有文档中的一个字段?

firebase - 从Firebase DB中的 'map'读入Flutter中的ListView

java - 使用MVVM和LiveData登录

node.js - Firebase Cloud 函数和 Cloud Vision API : TypeError: vision. detectorText 不是函数

android - 从 Adapter 外部修改 ExpandableListView 中的子元素(颜色)

java - 修改数组中单个元素的值-firestore

javascript - 将 Firestore 文档作为普通 Javascript 对象获取?

android - 在 GCMBaseIntentService 中显示 toast

android - 如何在 android 中创建闹钟唤醒屏幕并禁用默认后退按钮?