简体   繁体   English

将PubSub添加为依赖项会导致Firestore错误

[英]Adding PubSub as a dependency causes errors with Firestore

I am fairly new to Android and the Google cloud. 我是Android和Google云的新手。 I have written a test app which successfully writes to a firestore database. 我已经编写了一个测试应用程序,可以成功写入Firestore数据库。 I wanted to extend my application by adding a feature to publish to a pubsub topic. 我想通过添加要发布到pubsub主题的功能来扩展我的应用程序。 I added the following dependency line to build.gradle: 我在build.gradle中添加了以下依赖项行:

implementation 'com.google.cloud:google-cloud-pubsub:0.33.0-beta'

Before I even added any new pubsub code, my app builds, runs, and immediately crashes with the following stacktrace: 在甚至添加任何新的pubsub代码之前,我的应用程序都会生成,运行并立即崩溃,并带有以下stacktrace:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.tliv.mytestapp, PID: 27506
              java.lang.RuntimeException: Internal error in Firestore (0.6.6-dev).
                  at com.google.android.gms.internal.zzeux.run(Unknown Source:23)
                  at android.os.Handler.handleCallback(Handler.java:790)
                  at android.os.Handler.dispatchMessage(Handler.java:99)
                  at android.os.Looper.loop(Looper.java:164)
                  at android.app.ActivityThread.main(ActivityThread.java:6494)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
               Caused by: java.util.ServiceConfigurationError: Provider io.grpc.netty.NettyChannelProvider could not be instantiated: java.lang.ClassCastException: class io.grpc.netty.NettyChannelProvider cannot be cast to com.google.android.gms.internal.zzfmw
                  at com.google.android.gms.internal.zzfmw.zzq(Unknown Source:84)
                  at com.google.android.gms.internal.zzfmw.zzdcr(Unknown Source:26)
                  at com.google.android.gms.internal.zzfmw.<clinit>(Unknown Source:12)
                  at com.google.android.gms.internal.zzfmw.zzdcs(Unknown Source:0)
                  at com.google.android.gms.internal.zzfmv.zzud(Unknown Source:0)
                  at com.google.android.gms.internal.zzeti.<init>(Unknown Source:22)
                  at com.google.android.gms.internal.zzenf.zza(Unknown Source:74)
                  at com.google.android.gms.internal.zzenh.run(Unknown Source:8)
                  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
                  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
                  at com.google.android.gms.internal.zzeuu$zza.run(Unknown Source:7)
                  at java.lang.Thread.run(Thread.java:764)
               Caused by: java.lang.ClassCastException: class io.grpc.netty.NettyChannelProvider cannot be cast to com.google.android.gms.internal.zzfmw
                  at java.lang.Class.asSubclass(Class.java:2469)
                  at com.google.android.gms.internal.zzfmw.zzq(Unknown Source:2)
                  at com.google.android.gms.internal.zzfmw.zzdcr(Unknown Source:26) 
                  at com.google.android.gms.internal.zzfmw.<clinit>(Unknown Source:12) 
                  at com.google.android.gms.internal.zzfmw.zzdcs(Unknown Source:0) 
                  at com.google.android.gms.internal.zzfmv.zzud(Unknown Source:0) 
                  at com.google.android.gms.internal.zzeti.<init>(Unknown Source:22) 
                  at com.google.android.gms.internal.zzenf.zza(Unknown Source:74) 
                  at com.google.android.gms.internal.zzenh.run(Unknown Source:8) 
                  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457) 
                  at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) 
                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 
                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 
                  at com.google.android.gms.internal.zzeuu$zza.run(Unknown Source:7) 
                  at java.lang.Thread.run(Thread.java:764) 

I'm not sure where to begin troubleshooting this. 我不确定从哪里开始进行故障排除。 As soon as I remove the pubsub dependency, my code builds and runs fine again. 删除pubsub依赖项后,我的代码将立即构建并再次正常运行。

As per the doc , "Google Cloud Java client libraries do not currently support Android". 根据该文档 ,“ Google Cloud Java客户端库当前不支持Android”。

You may want to use the Google Cloud Pub/Sub API Client Library instead for your project. 您可能要为您的项目使用Google Cloud Pub / Sub API客户端库

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM