question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Multiple java.lang.ClassNotFoundException in Cloud Firestore (24.1.2)

See original GitHub issue

Since past few months we have been seeing a huge influx of crash issues in the Firestore SDK in our production version of our app Config which is causing the issue:

'com.google.gms:google-services:4.3.13'
firebase_bom = '30.3.2'
'com.google.android.gms:play-services-base:18.1.0'
'com.google.android.gms:play-services-tasks:18.0.2'

Please find the logs below

Fatal Exception: java.lang.RuntimeException: Internal error in Cloud Firestore (24.1.2).
       at com.google.firebase.firestore.util.AsyncQueue.lambda$panic$3(AsyncQueue.java:539)
       at com.google.firebase.firestore.util.AsyncQueue.$r8$lambda$jx84dqgUsF4ojecSMurRqFLFD1Y(AsyncQueue.java)
       at com.google.firebase.firestore.util.AsyncQueue$$InternalSyntheticLambda$0$ee0bb9e76d873eb0dc9297d9a9af24cf74be4371507e5d9f6cdb6af965a9e57b$0.run(AsyncQueue.java)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:148)
       at android.app.ActivityThread.main(ActivityThread.java:7406)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

Caused by com.google.android.gms.tasks.RuntimeExecutionException: java.lang.RuntimeException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/common/base/CharMatcher;
       at com.google.android.gms.tasks.zzw.getResult(com.google.android.gms:play-services-tasks@@18.0.2:3)
       at com.google.firebase.firestore.remote.FirestoreChannel.lambda$runBidiStreamingRpc$0(FirestoreChannel.java:124)
       at com.google.firebase.firestore.remote.FirestoreChannel.$r8$lambda$ThFui-hvcsrVGYxlBtcTH5vVbvE(FirestoreChannel.java)
       at com.google.firebase.firestore.remote.FirestoreChannel$$InternalSyntheticLambda$0$f566b4153b534aa8580aa93faa9c580a04c89fec85c27cb978c537b6c327c368$0.onComplete(FirestoreChannel.java)
       at com.google.android.gms.tasks.zzi.run(com.google.android.gms:play-services-tasks@@18.0.2:1)
       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.util.AsyncQueue$SynchronizedShutdownAwareExecutor$DelayedStartFactory.run(AsyncQueue.java:234)
       at java.lang.Thread.run(Thread.java:818)

Caused by java.lang.RuntimeException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/common/base/CharMatcher;
       at com.google.android.gms.tasks.zzz.run(com.google.android.gms:play-services-tasks@@18.0.2:2)
       at com.google.firebase.firestore.util.ThrottledForwardingExecutor.lambda$execute$0(ThrottledForwardingExecutor.java:54)
       at com.google.firebase.firestore.util.ThrottledForwardingExecutor.$r8$lambda$MfIJbVuxZtLwosAgPzPA-cU66Ko(ThrottledForwardingExecutor.java)
       at com.google.firebase.firestore.util.ThrottledForwardingExecutor$$InternalSyntheticLambda$0$315eca65e330db056b7a49c0f4857da93273eb5e29c07cc873bd0f103d01177e$0.run(ThrottledForwardingExecutor.java)
       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:129)
       at io.grpc.internal.GrpcUtil.<clinit>(GrpcUtil.java:205)
       at io.grpc.okhttp.OkHttpChannelBuilder.<init>(OkHttpChannelBuilder.java:181)
       at io.grpc.okhttp.OkHttpChannelBuilder.forTarget(OkHttpChannelBuilder.java:156)
       at io.grpc.okhttp.OkHttpChannelProvider.builderForTarget(OkHttpChannelProvider.java:47)
       at io.grpc.okhttp.OkHttpChannelProvider.builderForTarget(OkHttpChannelProvider.java:27)
       at io.grpc.ManagedChannelBuilder.forTarget(ManagedChannelBuilder.java:76)
       at com.google.firebase.firestore.remote.GrpcCallProvider.initChannel(GrpcCallProvider.java:99)
       at com.google.firebase.firestore.remote.GrpcCallProvider.lambda$initChannelTask$6(GrpcCallProvider.java:242)
       at com.google.firebase.firestore.remote.GrpcCallProvider.$r8$lambda$SCD5iiibQ8l4haiO8ofSfE0wIJg(GrpcCallProvider.java)
       at com.google.firebase.firestore.remote.GrpcCallProvider$$InternalSyntheticLambda$1$24dfe1452828c34b25291fc0adb6cd3bc1502d531cb543765315882230811d05$0.call(GrpcCallProvider.java)
       at com.google.android.gms.tasks.zzz.run(com.google.android.gms:play-services-tasks@@18.0.2:1)
       at com.google.firebase.firestore.util.ThrottledForwardingExecutor.lambda$execute$0(ThrottledForwardingExecutor.java:54)
       at com.google.firebase.firestore.util.ThrottledForwardingExecutor.$r8$lambda$MfIJbVuxZtLwosAgPzPA-cU66Ko(ThrottledForwardingExecutor.java)
       at com.google.firebase.firestore.util.ThrottledForwardingExecutor$$InternalSyntheticLambda$0$315eca65e330db056b7a49c0f4857da93273eb5e29c07cc873bd0f103d01177e$0.run(ThrottledForwardingExecutor.java)
       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.ClassNotFoundException: Didn't find class "com.google.common.base.CharMatcher" on path: DexPathList[[zip file "/data/app/com.letsenvision.envisionai-1/base.apk"],nativeLibraryDirectories=[/data/app/com.letsenvision.envisionai-1/lib/arm, /data/app/com.letsenvision.envisionai-1/base.apk!/lib/armeabi-v7a, /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:129)
       at io.grpc.internal.GrpcUtil.<clinit>(GrpcUtil.java:205)
       at io.grpc.okhttp.OkHttpChannelBuilder.<init>(OkHttpChannelBuilder.java:181)
       at io.grpc.okhttp.OkHttpChannelBuilder.forTarget(OkHttpChannelBuilder.java:156)
       at io.grpc.okhttp.OkHttpChannelProvider.builderForTarget(OkHttpChannelProvider.java:47)
       at io.grpc.okhttp.OkHttpChannelProvider.builderForTarget(OkHttpChannelProvider.java:27)
       at io.grpc.ManagedChannelBuilder.forTarget(ManagedChannelBuilder.java:76)
       at com.google.firebase.firestore.remote.GrpcCallProvider.initChannel(GrpcCallProvider.java:99)
       at com.google.firebase.firestore.remote.GrpcCallProvider.lambda$initChannelTask$6(GrpcCallProvider.java:242)
       at com.google.firebase.firestore.remote.GrpcCallProvider.$r8$lambda$SCD5iiibQ8l4haiO8ofSfE0wIJg(GrpcCallProvider.java)
       at com.google.firebase.firestore.remote.GrpcCallProvider$$InternalSyntheticLambda$1$24dfe1452828c34b25291fc0adb6cd3bc1502d531cb543765315882230811d05$0.call(GrpcCallProvider.java)
       at com.google.android.gms.tasks.zzz.run(com.google.android.gms:play-services-tasks@@18.0.2:1)
       at com.google.firebase.firestore.util.ThrottledForwardingExecutor.lambda$execute$0(ThrottledForwardingExecutor.java:54)
       at com.google.firebase.firestore.util.ThrottledForwardingExecutor.$r8$lambda$MfIJbVuxZtLwosAgPzPA-cU66Ko(ThrottledForwardingExecutor.java)
       at com.google.firebase.firestore.util.ThrottledForwardingExecutor$$InternalSyntheticLambda$0$315eca65e330db056b7a49c0f4857da93273eb5e29c07cc873bd0f103d01177e$0.run(ThrottledForwardingExecutor.java)
       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)

One interesting thing to note is that these issues are only coming for users who are on Android 5 and Android 6. You can see this in the screenshots from the crashlytics.

Screenshot from 2022-08-29 15-38-44

Issue Analytics

  • State:closed
  • Created a year ago
  • Comments:18 (3 by maintainers)

github_iconTop GitHub Comments

2reactions
funkyidolcommented, Sep 28, 2022

@Farasy Yes upgrading to the Guava Android 31.1 worked for us in production as well and now the app is once again stable for older Android versions

1reaction
Farasycommented, Sep 27, 2022

So, what helps is to set the Guava version strictly as it looks that at least one dependency in the jungle uses a different version:

    implementation ("com.google.guava:guava") {
        version{
            strictly '31.1-android'
        }
    }
Read more comments on GitHub >

github_iconTop Results From Across the Web

How to fix internal error in Firestore crash - Stack Overflow
You can try to fix this error, update android.enableR8=false in gradle.properties. You need to add this row cause default value true.
Read more >
Firebase Android SDK Release Notes - Google
Fixed an issue in v18.3.0 that caused a NoClassDefFoundError in specific cases ... Improved crash reporting reliability for multi-process apps on Android 28 ......
Read more >
com.google.firebase.iid.firebaseinstanceidreceiver - You.com
It means the code called a class that is not in the class path. The issue can be because: The library Firebase-iid needs...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found