【问题标题】:Adding PubSub as a dependency causes errors with Firestore添加 PubSub 作为依赖项会导致 Firestore 出现错误
【发布时间】:2018-02-03 01:14:59
【问题描述】:

我对 Android 和 Google 云还很陌生。我编写了一个测试应用程序,该应用程序成功写入了 Firestore 数据库。 我想通过添加一个发布到 pubsub 主题的功能来扩展我的应用程序。 我在 build.gradle 中添加了以下依赖行:

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

在我添加任何新的 pubsub 代码之前,我的应用程序已构建、运行并立即崩溃,并出现以下堆栈跟踪:

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) 

我不确定从哪里开始解决此问题。一旦我删除了 pubsub 依赖项,我的代码就会再次构建并运行良好。

【问题讨论】:

    标签: java android google-cloud-pubsub


    【解决方案1】:

    根据doc,“Google Cloud Java 客户端库目前不支持 Android”。

    您可能希望将Google Cloud Pub/Sub API Client Library 用于您的项目。

    【讨论】:

    • 哇,我完全错过了关于 Android 的说明。谢谢!
    猜你喜欢
    • 2020-03-05
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2012-11-13
    相关资源
    最近更新 更多