Flutter Android Studio 构建失败

Posted

技术标签:

【中文标题】Flutter Android Studio 构建失败【英文标题】:Flutter Android studio build failing 【发布时间】:2019-06-19 20:58:17 【问题描述】:

我的 android studio flutter 项目开始给出找不到符号错误。

C:\Users\abc\AppData\Roaming\Pub\Cache\hosted\pub.dartlang.org\firebase_messaging-2.2.0\android\src\main\java\io\flutter\plugins\firebasemessaging\FirebaseMe**ssagingPlugin.java:13: error: cannot find symbol
import androidx.annotation.NonNull;**
                          ^
  symbol:   class NonNull
  location: package androidx.annotation
C:\Users\abc\AppData\Roaming\Pub\Cache\hosted\pub.dartlang.org\firebase_messaging-2.2.0\android\src\main\java\io\flutter\plugins\firebasemessaging\FirebaseMessagingPlugin.java:14: error: package androidx.localbroadcastmanager.content does not exist
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
                                             ^
C:\Users\abc\AppData\Roaming\Pub\Cache\hosted\pub.dartlang.org\firebase_messaging-2.2.0\android\src\main\java\io\flutter\plugins\firebasemessaging\FlutterFir**ebaseInstanceIDService.java:9: error: package androidx.localbroadcastmanager.content does not exist
import androidx.localbroadcastmanager.content.LocalBroadcastManager;**

任何人都知道出了什么问题?

根据其他用户的建议,我尝试重构为 AndroidX,但即使它是 compileSdkVersion 28 仍然出现错误。我还尝试使缓存无效并重新启动 android studio。

Gradle.properties

【问题讨论】:

【参考方案1】:

如果您使用的是cloud_firestore: ^0.9.0,请更改以下内容

pubspec.yaml

firebase_core: '^0.3.0' 添加到依赖项

android/build.gradle

mavenLocal() 添加到 buildscripts.repositories 和 allprojects.repositories

classpath 'com.google.gms:google-services:4.2.0' 添加到 buildscript.dependencies

android/grandle.properties

添加 android.useAndroidX=trueandroid.enableJetifier=true

android/app/build.gradle

将 compileSdkVersion 更改为 28

将依赖项更改为

testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'

在底部添加apply plugin: 'com.google.gms.google-services'

【讨论】:

谢谢埃里克金。它解决了我的问题。完成您告诉的所有步骤后,我的应用程序运行良好。我还需要更新一些依赖项,例如 firebase_auth、firebase_messaging 等。现在一切正常。但是,我的 Eclipse 仍然向我显示警报消息,将我的 compileSdk 更改为 28(即使它是),以便重构为 AndroidX .... @Sam 我不确定如何解决您的问题。您可能想要清除 Android Studio 缓存或下载新版本。现在我正在使用带有颤振插件的 VSCode。 @Sam 你能告诉我哪个依赖版本特别是你使用的 firebase_auth 我有同样的问题。我已经尝试了所有这些,但仍然遇到同样的错误。 @EricKim 感谢您的详细描述。在进行这些更改后运行 flutter clean 使其工作。【参考方案2】:

我遇到了同样的错误,必须进入我的应用程序级别的 android build.gradle 文件并将 compilesdkversion 更改为 28,然后在我的 gradle.properties 文件中添加 android.useAndroidX=true android.enableJetifier=true,我还检查了我的 pubspec 文件并检查了对 AndroidX 有重大更改的任何更新,并确保更新这些更新只是为了安全。阅读更多关于AndroidX

【讨论】:

嗨,我试过了,但我的 Android 工作室仍然显示错误,说你的 compileSdkVersion 应该至少为 28,即使它是 28【参考方案3】:

您需要将项目迁移到 AndroidX。请参阅 firebase_messaging here 的更改日志。要迁移您的项目,请参阅此link。

【讨论】:

【参考方案4】:

Android 于 2019 年 1 月 16 日获得新许可

转到您的终端: 颤振医生--android-licenses

在 Android Studio 中:重构 -> 迁移到 AndroidX

【讨论】:

嗨,我更改了 compileSdkVersion 28 并更改了 gradle.properties。但是当我尝试重构 -> 迁移到 AndroidX 时,它会显示错误说将 compileSdkVersion 更改为 28,即使它是 28...【参考方案5】:

除了@Eric Kim's answer,请确保您使用的是最低支持的android构建工具版本,

classpath 'com.android.tools.build:gradle:3.2.0'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.51'

理想情况下,您应该使用最新版本,但到目前为止,上述版本是最低要求。

【讨论】:

【参考方案6】:

android/app/build.gradle 中,您应该将 compileSdkVersion 更改为:

compileSdkVersion 28

【讨论】:

以上是关于Flutter Android Studio 构建失败的主要内容,如果未能解决你的问题,请参考以下文章

为啥我们需要使用 Android Studio 来构建 Flutter 应用? [关闭]

在 Android Studio 中构建失败的 Flutter 项目

Flutter app Android studio 3.2.1,构建失败

如何使用 Android Studio 在 Flutter 中构建 .apk 和 .ipa?

Gradle 在 Android Studio 和 AppCenter 中都找不到 Flutter 构建的 APK

如何在 Android Studio 中使用 Flutter RP2 清理您的构建?