【问题标题】:Release apk android in flutter is crashing on start up在flutter中发布apk android在启动时崩溃
【发布时间】:2019-06-06 18:45:48
【问题描述】:

我认为我的问题是因为我在我的应用程序中使用了 Cloudfirestore。有些设备崩溃,有些没有。(S7 samsung samsung android 8.0 崩溃,A5 samsung android 6.0 没有崩溃......)。我使用 logcat 来获取导致崩溃的日志,这是错误:

java.lang.RuntimeException: Internal error in Firestore (0.6.6-dev).
        at com.google.firebase.firestore.obfuscated.zzgf.zzb(com.google.firebase:firebase-firestore@@17.1.1:377)
        at com.google.firebase.firestore.obfuscated.zzgk.run(com.google.firebase:firebase-firestore@@17.1.1)
        at android.os.Handler.handleCallback(Handler.java:725)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:5302)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.RuntimeException: io.grpc.ManagedChannelProvider$ProviderNotFoundException: No functional channel service provider found. Try adding a dependency on the grpc-okhttp or grpc-netty artifact
        at com.google.firebase.firestore.obfuscated.zzgf.zza(com.google.firebase:firebase-firestore@@17.1.1:288)
        at com.google.firebase.firestore.obfuscated.zzgi.run(com.google.firebase:firebase-firestore@@17.1.1)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
        at java.util.concurrent.FutureTask.run(FutureTask.java:234)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:153)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
        at com.google.firebase.firestore.obfuscated.zzgf$zza.run(com.google.firebase:firebase-firestore@@17.1.1:203)
        at java.lang.Thread.run(Thread.java:856)
     Caused by: io.grpc.ManagedChannelProvider$ProviderNotFoundException: No functional channel service provider found. Try adding a dependency on the grpc-okhttp or grpc-netty artifact
        at io.grpc.ManagedChannelProvider.provider(ManagedChannelProvider.java:60)
        at io.grpc.ManagedChannelBuilder.forTarget(ManagedChannelBuilder.java:70)
        at com.google.firebase.firestore.obfuscated.zzfk.<init>(com.google.firebase:firebase-firestore@@17.1.1:101)
        at com.google.firebase.firestore.obfuscated.zzm.zza(com.google.firebase:firebase-firestore@@17.1.1:1216)
        at com.google.firebase.firestore.obfuscated.zzt.run(com.google.firebase:firebase-firestore@@17.1.1)
        at com.google.firebase.firestore.obfuscated.zzgf.zzc(com.google.firebase:firebase-firestore@@17.1.1:309)
        at com.google.firebase.firestore.obfuscated.zzgj.call(com.google.firebase:firebase-firestore@@17.1.1)
        at com.google.firebase.firestore.obfuscated.zzgf.zza(com.google.firebase:firebase-firestore@@17.1.1:285)
        at com.google.firebase.firestore.obfuscated.zzgi.run(com.google.firebase:firebase-firestore@@17.1.1) 
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:153) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
        at com.google.firebase.firestore.obfuscated.zzgf$zza.run(com.google.firebase:firebase-firestore@@17.1.1:203) 
        at java.lang.Thread.run(Thread.java:856) 

那么如何解决flutter中出现这样的错误呢??

【问题讨论】:

  • 更新您的 Gradle 依赖项。 Firestore 现在是 17.1.5,我敢打赌其他人也已经过时了。
  • 确保您已注册发布 API 密钥
  • @TheWanderer 我知道我应该更新它,但是在哪里更新呢?
  • @Brans 我已经注册了我的密钥,但我想更新我的 gradle。怎么做?

标签: android firebase dart flutter google-cloud-firestore


【解决方案1】:

三星 S5 等手机也有同样的问题。当我试图打开它时,该应用程序开始崩溃。这是一个对我有用的修复:

defaultConfig {
    ...
    multiDexEnabled true
    ndk {
        abiFilters 'x86', 'armeabi-v7a'
    }
}

必须在android/app/build.gradle 文件中添加ndk,它就像一个魅力。

我希望这可以帮助某人。

【讨论】:

    【解决方案2】:

    你应该首先检查你是否在你的 pubspec.yaml 中安装了最新的cloud_firestore 包(0.8.2+3)

    您可以升级&lt;yourapp&gt;/android/build.gradle下的google服务(当前版本4.2.0)。但请注意,您可能还需要将其他插件升级到那里的最新版本。

    【讨论】:

    • 你有没有显示 gradle 版本及其对应的兼容 google 插件的列表
    • 我已经有最新版本的cloud firestore,但问题依旧,是不是我提供的logcat出现grpc错误
    • 尝试添加对 grpc-okhttp 或 grpc-netty artifact 的依赖,也许是这个
    • 你在哪里添加了 grpc 的依赖?进入 android 或 android/app/ 下的 gradle 文件?
    • 我没有在任何地方添加它。我应该在哪里添加它?
    猜你喜欢
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多