如何停止颤振应用程序中的firebase错误

Posted

技术标签:

【中文标题】如何停止颤振应用程序中的firebase错误【英文标题】:How to stop firebase error in flutter app 【发布时间】:2019-06-19 21:15:27 【问题描述】:

我的应用程序没有再次构建,不知道我做错了什么。下面列出了错误消息

C:\flutter\flutter\.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.8.0+1\android\src\main\java\io\flutter\plugins\firebaseauth\FirebaseAuthPlugin.java:9: error: package androidx.annotation does not exist
import androidx.annotation.NonNull;
                          ^
C:\flutter\flutter\.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.8.0+1\android\src\main\java\io\flutter\plugins\firebaseauth\FirebaseAuthPlugin.java:10: error: package androidx.annotation does not exist
import androidx.annotation.Nullable;
                          ^
C:\flutter\flutter\.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.8.0+1\android\src\main\java\io\flutter\plugins\firebaseauth\FirebaseAuthPlugin.java:638: error: cannot find symbol

【问题讨论】:

"寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及在问题本身中重现它所需的最短代码。没有明确的问题陈述对其他读者没有用。请参阅:How to create a Minimal, Complete, and Verifiable example." 在这种情况下,我希望它是/包含您的 pubspec.yaml 文件。 【参考方案1】:

解决方案

将:implementation 'androidx.annotation:annotation:1.0.1' 添加到 firebase_auth 库build.gradle。我用 Android Studio 看了一下 Flutter 的 android 应用结构。


来自 Android Studio

示例代码:

build.graddle(firebase_auth 库):
android 
    compileSdkVersion 28

    defaultConfig 
        minSdkVersion 16
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    
    lintOptions 
        disable 'InvalidPackage'
    
    dependencies 
        api 'com.google.firebase:firebase-auth:16.0.1'
        implementation 'androidx.annotation:annotation:1.0.1'
    

pubspec.yaml(依赖项)
  flutter:
    sdk: flutter
  rxdart: ^0.20.0
  firebase_core: ^0.3.0
  firebase_analytics: ^2.0.0
  firebase_auth: ^0.8.0+1
  google_sign_in: ^4.0.0

【讨论】:

非常感谢。但还请补充一点,我们需要使用 Android Studio 将 firebase_auth 插件的 /android 文件夹迁移到 Android X 我不必迁移 android 文件夹,只需将该行添加到库的 build.gradle 文件即可解决问题。【参考方案2】:

迁移到 AndroidX 的某些 Google 插件的最新版本中似乎存在错误。我已经创建了一个 pull request 并进行了修复,但可能不会在星期一之前进行审核。

与此同时,一种解决方法是降级到您的 pubspec 中的工作版本。例如。我有firebase_storage: ^1.1.0,在查看changelog 以识别以前的版本后,我将该行更改为firebase_storage: 1.0.4

【讨论】:

【参考方案3】:

您需要将项目迁移到 AndroidX。您可以参考此link 来迁移您的项目。另请参阅 firebase_auth here 的更改日志。

【讨论】:

我能够让我的项目在不降级的情况下运行。我确实将我的项目迁移到了 AndroidX,并将 GoogleSignIn 的版本提升到了 3.3.0。【参考方案4】:

我在gradle.properties添加了这个

android.useAndroidX=true
android.enableJetifier=true

它帮助了我

【讨论】:

以上是关于如何停止颤振应用程序中的firebase错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Firebase 颤振应用程序中合并两个集合?

我想将 firebase 自定义模型集成到颤振应用程序中。我如何整合?

如何在后台监听firebase实时数据库更新事件并使用颤振自动启动应用程序(如Messenger中的调用功能)?

将图像从 firebase 显示到颤振应用程序 [关闭]

firebase deploy 在颤振应用程序中出现错误

尝试使用 firebase 获取我的颤振应用程序的获取请求并出现错误