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=true
和
android.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?