繁体   English   中英

Flutter Firestore 未检索已发布的 android apk 中的任何数据

[英]Flutter Firestore doesn't retrieve any data in released android apk

我尝试开发一个 flutter 应用程序,它使用 firestore 和 firebase auth 进行身份验证。

在调试模式下,当我测试应用程序时,它会从 firestore 检索数据并显示它。 和 firebase auth 也可以正常工作。

但在发布模式下,Firestore 不会检索任何数据并显示如下错误。 但 Firebase auth 在发布模式应用程序中完美运行。

我通过使用 android 工作室构建变体功能在发布模式下捕获了错误。

感谢您阅读。

E/io.grpc.internal.S1: [Channel<1>: (firestore.googleapis.com)] Uncaught exception in the SynchronizationContext. Panic!
    java.lang.ExceptionInInitializerError
        at m1.j.Q(Unknown Source:22)
        at io.grpc.internal.D.Q(Unknown Source:4)
        at io.grpc.internal.k1.A(:3)
        at io.grpc.internal.a1.run(:2)
        at k1.t1.a(Unknown Source:24)
        at k1.t1.execute(:2)
        at io.grpc.internal.K1.b(Unknown Source:9)
        at io.grpc.internal.u0.a(:10)
        at io.grpc.internal.u0.run(Unknown Source:38)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:919)
     Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException: o1.a.values []
        at java.lang.Enum.enumValues(Enum.java:270)
        at java.lang.Enum.access$000(Enum.java:61)
        at java.lang.Enum$1.create(Enum.java:277)
        at java.lang.Enum$1.create(Enum.java:275)
        at libcore.util.BasicLruCache.get(BasicLruCache.java:63)
        at java.lang.Enum.getSharedConstants(Enum.java:289)
        at java.lang.Class.getEnumConstantsShared(Class.java:2428)
        at java.util.EnumMap.getKeyUniverse(EnumMap.java:755)
        at java.util.EnumMap.<init>(EnumMap.java:138)
        at m1.v.<clinit>(:1)
        at m1.j.Q(Unknown Source:22) 
        at io.grpc.internal.D.Q(Unknown Source:4) 
        at io.grpc.internal.k1.A(:3) 
        at io.grpc.internal.a1.run(:2) 
        at k1.t1.a(Unknown Source:24) 
        at k1.t1.execute(:2) 
        at io.grpc.internal.K1.b(Unknown Source:9) 
        at io.grpc.internal.u0.a(:10) 
        at io.grpc.internal.u0.run(Unknown Source:38) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
        at java.lang.Thread.run(Thread.java:919) 
     Caused by: java.lang.NoSuchMethodException: o1.a.values []
        at java.lang.Class.getMethod(Class.java:2072)
        at java.lang.Class.getDeclaredMethod(Class.java:2050)
        at java.lang.Enum.enumValues(Enum.java:267)

W/Firestore: (23.0.1) [Z]: (3a36b20) Stream closed with status: o1{code=INTERNAL, description=Panic! This is a bug!, cause=java.lang.ExceptionInInitializerError
        at m1.j.Q(Unknown Source:22)
        at io.grpc.internal.D.Q(Unknown Source:4)
        at io.grpc.internal.k1.A(:3)
        at io.grpc.internal.a1.run(:2)
        at k1.t1.a(Unknown Source:24)
        at k1.t1.execute(:2)
        at io.grpc.internal.K1.b(Unknown Source:9)
        at io.grpc.internal.u0.a(:10)
        at io.grpc.internal.u0.run(Unknown Source:38) 

这是 Firestore 的常见错误。 问题出在android/app/build.gradle中的minifyEnabledshrinkResources字段。

您应该能够通过更改android/app/build.gradle中的发布构建类型来解决此问题,如下所示:

buildTypes {
...
    release {
        ...
        signingConfig signingConfigs.release
        minifyEnabled false
        shrinkResources false
    }
}  

当然,这不是一个理想的“解决方案”,因为应用程序的大小会变大。 但是 Firebase 团队表示他们无能为力,因为我们使用的是 flutter,它不受官方支持...

下面是相关问题: https://github.com/FirebaseExtended/flutterfire/discussions/5708#discussioncomment-925997
https://github.com/FirebaseExtended/flutterfire/issues/1412

暂无
暂无

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

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