如何在 flutter 应用程序中停止 firebase 错误

How to stop firebase error in flutter app

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

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

您需要将您的项目迁移到AndroidX。你可以参考这个 link to migrate your project. And also see change logs for firebase_auth here.

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

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

解决方案

添加:implementation 'androidx.annotation:annotation:1.0.1'firebase_auth 库 build.gradle。我使用 Android Studio 来查看 flutter android 应用程序结构。


来自 Android 工作室

示例代码:

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

我在 gradle.properties

中添加了这个
android.useAndroidX=true
android.enableJetifier=true

它帮助了我