在 Flutter 项目中更新 Gradle

Isr*_*dev 12 gradle gradle-plugin flutter flutter-dependencies

我在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.

Run Code Online (Sandbox Code Playgroud)

这里有一些关于项目状态和环境的信息--------------

  • 已更改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
Run Code Online (Sandbox Code Playgroud)
  • 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"
    }
}
.
.
.
Run Code Online (Sandbox Code Playgroud)
  • 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

Run Code Online (Sandbox Code Playgroud)
  • 颤振医生 -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!

Run Code Online (Sandbox Code Playgroud)

Sur*_*gch 104

Here is how I upgraded gradle in my older Flutter project:

  1. Create a new temp project with the latest version of Flutter. You'll use this to see what version of gradle Flutter is using nowadays.

  2. In the temp project open android/build.gradle check the classpath version of gradle being used and update that in your old Flutter project. For me today it looks like this:

    classpath 'com.android.tools.build:gradle:4.1.0'
    
    Run Code Online (Sandbox Code Playgroud)
  3. In the temp project open android/gradle/wrapper/gradle-wrapper.properties and check the distributionUrl. Update your old project to use the same one. For me today it looks like this:

    distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
    
    Run Code Online (Sandbox Code Playgroud)
  4. Rerun your app. It has to download the new version of gradle to the android/.gradle directory so the first time might take a while.

Or...

If your Android project doesn't have a lot of customizations, just delete the android folder (back it up first, especially the key.properties file) and recreate it by running the following from the root of your project:

classpath 'com.android.tools.build:gradle:4.1.0'
Run Code Online (Sandbox Code Playgroud)

这是我最近的偏好。尽管我必须在 中重新创建启动器图标和其他自定义设置AndroidManifest.xml,但我知道我正在获取 Flutter 提供的 Android 的最新更新。如果你的项目已经存在了一两年了,那么 Flutter 对 Android 的改变似乎不仅仅是 gradle 。


Анд*_*чук 42

最简单的方法(我作为 Android 开发人员这样做):

  1. 右键单击根文件夹中的 android 文件夹
  2. 在 Android Studio 中打开
  3. 等待它完全加载
  4. 它会问你“你想升级 gradle 吗?|”
  5. 单击“是”
  6. flutter clean

Android工作室开放

  • 就我而言,Flutter 在 AS 的上下文菜单中显示为灰色,知道为什么吗? (13认同)
  • 这个解决方案为我工作 (2认同)
  • 这节省了我的时间,谢谢!! (2认同)
  • 更新 - 虽然此解决方案有效,但有时“Flutter”子菜单被禁用。在这种情况下...在 Android Studio (AS) 中,选择“文件 | 打开”。如有必要,请等待弹出窗口中加载文件结构。然后导航到“Android”目录并在“新窗口”中打开它。现在,这将在该级别打开您的项目。打开该文件夹后,AS 将立即开始进行更新(请参见 AS 窗口的右下角)。最终寻找类似“启动升级助手”的内容。允许其启动并在出现提示时执行更新。在顶层重新打开项目,错误消失了! (2认同)

Nic*_*cue 9

2022 年更新,Android Studio Dolphin。其他答案让我吃了一惊,但不再是最新的。

  1. 在Android Studio中打开主flutter项目
  2. 右键单击 [android] 模块。选择“颤动”。选择Open Android module in Android Studio
  3. 我在新窗口中打开,但这可能不是必需的。
  4. 正如这里的文字所说,在菜单上选择(您必须在“Android”项目中)
    • File
    • Project Structure
    • Project
  5. 单击Android Gradle Plugin Version下拉菜单并选择最新版本(或您想要更新到的任何版本)
  6. 单击Gradle Version下拉菜单并选择最新版本(或您想要更新到的任何版本)
  7. 给你的 Gradle 一些时间来同步(它可能需要下载很多,所以要有耐心)
  8. 现在您应该能够关闭 Android 项目窗口,并返回到 flutter 项目


小智 8

android/gradle/wrapper/gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
Run Code Online (Sandbox Code Playgroud)

android/build.gradle:

classpath "com.android.tools.build:gradle:7.0.1"
Run Code Online (Sandbox Code Playgroud)

在 中android/gradle.properties,添加以下内容:

org.gradle.java.home=C:\\Program Files\\Android\\Android Studio\\jre
Run Code Online (Sandbox Code Playgroud)

  • 请注意,最后一个路径仅对 Windows 有效,对 Mac 无效。 (2认同)

Jac*_*ack 7

尝试重命名android/项目中的文件夹。flutter create .然后在目录下运行。这应该重新创建您的 android 目录。再次尝试您的构建,看看它是否解决了您的问题。


mig*_*uno 5

看起来好像audioplayers有一个与您的项目不兼容的 gradle 版本。

尝试升级audioplayers到最新版本,尽管这可能无法解决问题,因为该线程中的最后一条评论是在不到 24 小时前

audioplayers: ^0.18.3
Run Code Online (Sandbox Code Playgroud)