在Flutter中发布apk android在启动时崩溃

时间:2019-01-11 20:09:27

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

我认为我的问题是因为我在应用程序内部使用的Cloudfirestore。有些设备崩溃而有些没有崩溃。(S7三星Verizon android 8.0崩溃了,A5三星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) 

那么如何解决颤振中的这种错误?

2 个答案:

答案 0 :(得分:2)

某些手机(例如三星S5)也遇到了同样的问题。当我尝试打开应用时,该应用开始崩溃。这是一个对我有用的修复程序:

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

必须在ndk文件中添加android/app/build.gradle,它的工作原理像一个超级按钮。

我希望这可以帮助某人。

答案 1 :(得分:0)

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

您可以在<yourapp>/android/build.gradle(当前版本4.2.0)下升级Google服务。但是请注意,您可能需要将其他插件也升级到那里的最新版本。