【问题标题】:Flutter, android project runs into an error while compilingFlutter,android项目在编译时遇到错误
【发布时间】:2019-07-26 05:49:30
【问题描述】:

遇到构建错误,迁移到 android X, 改变了插件 ....................................

在原型中运行“flutter packages get”...             1.4s 在调试模式下在 Redmi 5 Plus 上启动 lib\main.dart... registerResGeneratingTask 已弃用,使用 registerGeneratedResFolders(FileCollection) registerResGeneratingTask 已弃用,使用 registerGeneratedResFolders(FileCollection) registerResGeneratingTask 已弃用,使用 registerGeneratedResFolders(FileCollection) registerResGeneratingTask 已弃用,使用 registerGeneratedResFolders(FileCollection) registerResGeneratingTask 已弃用,使用 registerGeneratedResFolders(FileCollection) C:\Users\kenny\Documents\flutter.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.8.1+4\an​​droid\src\main\java\io\flutter\plugins\firebaseauth\FirebaseAuthPlugin.java :9: 错误:找不到符号 导入androidx.annotation.NonNull; ^ 符号:类 NonNull 位置:包androidx.annotation C:\Users\kenny\Documents\flutter.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.8.1+4\an​​droid\src\main\java\io\flutter\plugins\firebaseauth\FirebaseAuthPlugin.java :10:错误:找不到符号 导入androidx.annotation.Nullable; ^ 符号:类 Nullable 位置:包androidx.annotation C:\Users\kenny\Documents\flutter.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.8.1+4\an​​droid\src\main\java\io\flutter\plugins\firebaseauth\FirebaseAuthPlugin.java :706: 错误: 找不到符号 私人无效报告异常(结果结果,@Nullable Exception异常){ ^ 符号:类 Nullable 位置:类 FirebaseAuthPlugin C:\Users\kenny\Documents\flutter.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.8.1+4\an​​droid\src\main\java\io\flutter\plugins\firebaseauth\FirebaseAuthPlugin.java :610: 错误: 找不到符号 public void onComplete(@NonNull Task task) { ^ 符号:类 NonNull 位置:类 FirebaseAuthPlugin.SignInCompleteListener C:\Users\kenny\Documents\flutter.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.8.1+4\an​​droid\src\main\java\io\flutter\plugins\firebaseauth\FirebaseAuthPlugin.java :629: 错误: 找不到符号 public void onComplete(@NonNull Task task) { ^ 符号:类 NonNull 位置:类 FirebaseAuthPlugin.TaskVoidCompleteListener C:\Users\kenny\Documents\flutter.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.8.1+4\an​​droid\src\main\java\io\flutter\plugins\firebaseauth\FirebaseAuthPlugin.java :647: 错误: 找不到符号 public void onComplete(@NonNull Task task) { ^ 符号:类 NonNull 位置:类 FirebaseAuthPlugin.GetSignInMethodsCompleteListener C:\Users\kenny\Documents\flutter.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.8.1+4\an​​droid\src\main\java\io\flutter\plugins\firebaseauth\FirebaseAuthPlugin.java :187: 错误: 找不到符号 public void onComplete(@NonNull Task task) { ^ 符号:类 NonNull C:\Users\kenny\Documents\flutter.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.8.1+4\an​​droid\src\main\java\io\flutter\plugins\firebaseauth\FirebaseAuthPlugin.java :492: 错误: 找不到符号 public void onComplete(@NonNull Task task) { ^ 符号:类 NonNull C:\Users\kenny\Documents\flutter.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.8.1+4\an​​droid\src\main\java\io\flutter\plugins\firebaseauth\FirebaseAuthPlugin.java :559: 错误: 找不到符号 公共无效 onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { ^ 符号:类 NonNull 9 个错误 ****************************************************** ******* 警告:如果此版本的 cloud_firestore 或其依赖项与 AndroidX 不兼容,它将破坏您的 Android 构建。 有关该问题以及如何解决该问题的更多信息,请参阅......。 此警告会针对所有 Android 构建失败打印。错误的真正根本原因可能是无关的。 ****************************************************** *******

FAILURE:构建失败并出现异常。

  • 出了什么问题: 任务 ':firebase_auth:compileDebugJavaWithJavac' 执行失败。

    编译失败;有关详细信息,请参阅编译器错误输出。

  • 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

  • 通过https://help.gradle.org获取更多帮助

在 10 秒内构建失败 Gradle 任务 assembleDebug 失败,退出代码为 1 退出(sigterm)

【问题讨论】:

标签: android firebase flutter firebase-authentication flutter-plugin


【解决方案1】:

我偶然发现了一个类似的问题,因为 firebase 插件使用了compileSdkVersion 27 - 我只是将它分叉为使用28,但也应该可以从项目根目录的build.gradle 覆盖它:https://stackoverflow.com/a/50916298/109219

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 28
            }
        }
    }
}

【讨论】:

  • 尝试了解决方案,但没有成功,我已经更新了我的帖子
【解决方案2】:

您是否已将项目迁移到 AndroidX?

您的项目似乎尚未迁移到 AndroidX。


什么是 AndroidX?

“AndroidX 是对原始 Android Support Library 的重大改进。AndroidX 完全取代了 Support Library。如果您的项目依赖于使用 AndroidX 的库,则要求所有新的 android 项目迁移到 AndroidX”

read more here ...


如何迁移到 AndroidX

总结

[先决条件:Android Studio 3.2+。 ]
[请在继续之前进行备份。]

  1. 在 Android Studio 中打开您的 android 项目
  2. 将这两行添加到您的 gradle.properties 文件
    android.useAndroidX=true
    android.enableJetifier=true

  3. 转到您的应用级别 build.gradle 文件并更改您的 compileSdkVersiontargetSdkVersion28

  4. 从菜单中点击 Refactor > Migrate to AndroidX

  5. 您可以选择在提示时进行 zip 备份。

  6. 列表准备好后,点击“Do Refactor

read more here ...

【讨论】:

  • 迁移无效,将我最初的帖子更改为错误消息
  • @rizu 迁移工作。这是一个不同的错误,您需要创建一个新问题。请不要编辑您的问题。这将使将来阅读此问题的其他 stackoverflow 用户感到困惑。所以我请你把旧问题放回去,问一个新问题。
【解决方案3】:

您是否已迁移到 android X?如果是的话,

1)确保你的 compileSdkVersion 和 targetSdkVersion 是 28

2) 有时 kotlin 版本也是导致此类错误的原因,请确保使用最新版本的 kotlin 。(在我的情况下,ext.kotlin_version = '1.3.10')。

3) 类路径 'com.google.gms:google-services:4.3.2'

4) 仔细遵循 firebase 说明,将您的应用程序添加到 firebase。

5) 如果您使用的是 firebase_auth,请确保在将应用程序添加到 firebase 时输入 SHA-1 和 SHA-256 签名。

别忘了把flutter clean作为最后一步

【讨论】:

    【解决方案4】:

    使用 Android Studio 3.2 及更高版本,您可以通过从菜单栏中选择 Refactor > Migrate to AndroidX 将现有项目迁移到 AndroidX。

    重构命令使用两个标志。默认情况下,它们在您的 gradle.properties 文件中都设置为 true:

    android.useAndroidX=true
    

    Android 插件使用适当的 AndroidX 库而不是支持库。

    android.enableJetifier=true
    

    Android 插件通过重写二进制文件自动迁移现有的第三方库以使用 AndroidX。

    【讨论】:

      猜你喜欢
      • 2020-08-12
      • 1970-01-01
      • 2020-04-19
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多