在 Flutter 项目中更新 Gradle
Posted
技术标签:
【中文标题】在 Flutter 项目中更新 Gradle【英文标题】:Update Gradle in Flutter project 【发布时间】:2021-06-29 09:46:59 【问题描述】:我在 Flutter 中有这个项目,但由于 Gradle 版本,我已经有几周无法构建 apk 了。我已经尝试了所有方法,但 Flutter 总是返回以下错误:
我已经安装了我找到的每个更新,尽管它显示 Gradle 版本是 4.10.2。
颤振构建 apk...
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\Users\israel.gomes\AppData\Local\Pub\Cache\hosted\pub.dartlang.org\audioplayers-0.17.4\android\build.gradle' line: 25
* What went wrong:
A problem occurred evaluating root project 'audioplayers'.
> Failed to apply plugin [id 'kotlin-android']
> The current Gradle version 4.10.2 is not compatible with the Kotlin Gradle plugin. Please use Gradle 5.3 or newer, or the previous version of the Kotlin plugin.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
The plugin audioplayers could not be built due to the issue above.
这里有一些关于项目状态和环境的信息--------- p>
已更改gradle-wrapper.properties(当前文件):distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip
android/build.gradle(当前文件):
buildscript
ext.kotlin_version = '1.3.50'
repositories
google()
jcenter()
dependencies
classpath 'com.android.tools.build:gradle:4.0.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
.
.
.
gradle --version
------------------------------------------------------------
Gradle 5.6.2
------------------------------------------------------------
Build time: 2019-09-05 16:13:54 UTC
Revision: 55a5e53d855db8fc7b0e494412fc624051a8e781
Kotlin: 1.3.41
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.14 compiled on March 12 2019
JVM: 1.8.0_261 (Oracle Corporation 25.261-b12)
OS: Windows 10 10.0 amd64
颤振医生-v
[√] Flutter (Channel dev, 2.1.0-12.1.pre, on Microsoft Windows [versão 10.0.19042.867], locale pt-BR)
• Flutter version 2.1.0-12.1.pre at C:\Flutter
• Framework revision 8264cb3e8a (3 weeks ago), 2021-03-10 12:37:57 -0800
• Engine revision 711ab3fda0
• Dart version 2.13.0 (build 2.13.0-116.0.dev)
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at C:\Users\israel.gomes\AppData\Local\Android\Sdk
• Platform android-30, build-tools 30.0.2
• ANDROID_HOME = C:\Users\israel.gomes\AppData\Local\Android\Sdk
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[√] Android Studio (version 4.0)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] IntelliJ IDEA Community Edition (version 2020.3)
• IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3
• Flutter plugin version 55.0.4
• Dart plugin version 203.7759
[√] VS Code (version 1.54.3)
• VS Code at C:\Users\israel.gomes\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.20.0
[√] Connected device (3 available)
• Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 7.1.1 (API 25) (emulator)
• Chrome (web) • chrome • web-javascript • Google Chrome 89.0.4389.114
• Edge (web) • edge • web-javascript • Microsoft Edge 87.0.664.75
• No issues found!
【问题讨论】:
【参考方案1】:这是我在旧的 Flutter 项目中升级 gradle 的方法:
使用最新版本的 Flutter 创建一个新的临时项目。您将使用它来查看当前使用的 gradle Flutter 版本。
在临时项目中打开 android/build.gradle 检查正在使用的 gradle 的类路径版本,并在旧的 Flutter 项目中更新它。今天对我来说是这样的:
classpath 'com.android.tools.build:gradle:4.1.0'
在临时项目中打开 android/gradle/wrapper/gradle-wrapper.properties 并检查distributionUrl
。更新您的旧项目以使用相同的项目。今天对我来说是这样的:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
重新运行您的应用。它必须将新版本的 gradle 下载到 android/.gradle
目录,所以第一次可能需要一段时间。
【讨论】:
这对我有用,还需要将我的compileSdkVersion 28
升级到compileSdkVersion 31
你能更新今天的版本吗? - @Suragch
@No.The.Hi,将我在答案中使用的版本号视为纯粹的示例。即使我今天更新它们,它们明天也会过时。按照上面列出的步骤是为自己获取最新版本号的方法。
使用 com.android.tools.build:gradle:4.2.2 避免最近出现的广告问题。【参考方案2】:
似乎audioplayers
的 gradle 版本与您的项目不兼容。
尝试将audioplayers
升级到最新版本although this may not fix the issue, as the last comment in this thread was less than 24 hours ago。
audioplayers: ^0.18.3
【讨论】:
是的...更新没有解决问题。我不得不为这个项目删除这个库。谢谢你注意到这个问题。我不知道!我会关注这个问题,看看是否有人可以解决这个问题。谢谢! 虽然这解决了手头的问题。但这不是问题的实际答案。所以这应该是一条评论 @HusseinAl-Mosawi OP 发布的隐含问题类似于“我的代码有什么问题,导致我无法在我的项目中更新 Gradle”。 *** 是一个问答网站,这让我的回答完全可以解决这个特定案例。如果您认为我的回答不符合 *** 指南,那么与其投反对票,不如将其标记并报告给模组?【参考方案3】:(android/gradle/wrapper/gradle-wrapper.properties) distributionUrl=https://services.gradle.org/distributions/gradle-7.0.2-all.zip
(android/build.gradle) 类路径“com.android.tools.build:gradle:7.0.1”
在(gradle.properties) 添加这个: org.gradle.java.home=C:\Program Files\Android\Android Studio\jre
【讨论】:
【参考方案4】:在 Flutter 项目中升级 gradle。 打开位于 yourProjectName/android/gradle/wrapper/gradle-wrapper.properties 的文件 gradle-wrapper.properties 并替换 distributionUrl通过更改 gradle 版本。例如,如果您想将 gradle 从版本 5.1.1 升级到 6.1.1,请将 Url 从“https://services.gradle.org/distributions/gradle-5.1.1-all.zip”更改为“https:// /services.gradle.org/distributions/gradle-6.1.1-all.zip" 并重建您的应用程序。
【讨论】:
【参考方案5】:尝试重命名项目中的android/
文件夹。然后在目录中运行flutter create .
。这应该重新创建您的 android 目录。再次尝试您的构建,看看它是否解决了您的问题。
【讨论】:
以上是关于在 Flutter 项目中更新 Gradle的主要内容,如果未能解决你的问题,请参考以下文章
使用 showdialog 和 textfield 在 Flutter 中更新单个 Listview 项目