Israeldev
Israeldev

Reputation: 1005

Update Gradle in Flutter project

I have this project in Flutter, but I haven't been able to build an apk for a couple of weeks, because of the Gradle version. I've tried everything, but Flutter always returns the error below:

I already install every update I found, even though, it shows that the Gradle version is 4.10.2.

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

Here some information about the project status and environment----------------------

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
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 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

[√] 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!

Upvotes: 89

Views: 203308

Answers (15)

DragonFire
DragonFire

Reputation: 4082

Here is what worked for me in Aug 2024.

  1. Go to the old code pubspec.yaml and copy name: ---- (of your project)
  2. Go to Android Studio create a fresh new flutter project with the same name.
  3. Copy the assets, lib folders and pubspec.yaml into the new project.
  4. flutter clean, flutter pub cache clean, flutter pub get, flutter pub upgrade (Optional) but most likely for an old project lot of dependencies will not work and new compile time errors will come up.
  5. Go through the bugs that prop up after updating the dependencies. (Hopefully not many will be there).

Upvotes: 1

s k
s k

Reputation: 5192

I managed to do this using command line in Windows

cd path/to/your/flutter_project/android


gradlew wrapper --gradle-version=7.6.1

p.s. Flutter is giving me heart attack every time I need to rebuild my project after some time.

Upvotes: 3

Alex Müller
Alex Müller

Reputation: 21

Now theres a way easier way to update the gradle version in your flutter project. See Android Java Gradle migration guide in the official flutter docs.

If you want to manually upgrade the gradle version in your version, simply do a manual fix at the command line:

  1. Go to the Android directory for your project.

    cd android

  2. Update Gradle to the preferred version. Choose between 7.3 through 7.6.1, inclusive. (for currently allowed version see Android Java Gradle migration guide)

    ./gradlew wrapper --gradle-version=7.6.1

This will automatically update the distributionUrl in the android/gradle/wrapper/gradle-wrapper.properties with the version chosen in the --gradle-version parameter.

Upvotes: 0

Suragch
Suragch

Reputation: 511548

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'
    
  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
    
  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:

flutter create .

This has been my preference recently. Although I have to recreate the launcher icon and other custom settings in AndroidManifest.xml, I know that I am getting the latest updates Flutter has to offer Android. There seems to be a lot more than gradle that Flutter changes about Android if your project is a year or two old.

Upvotes: 117

Azad Hossain
Azad Hossain

Reputation: 34

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

distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip

if 7.6.1 is not working use 7.5

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip

android/build.gradle:

classpath "com.android.tools.build:gradle:7.4.2"

Upvotes: -2

Rayen Ben Ammar
Rayen Ben Ammar

Reputation: 21

Everyone is saying edit this, update that but it's not always the best solution when the app code is shared across multiple developers.

You should install the recommended java version corresponding to the project gradle version.

  1. Get the project gradle version in this file :
    $PROJECT/android/gradle/wrapper/gradle-wraper.properties
  2. Check what Java version is recommended for your gradle version
    Gradle Website Compatibility Matrix
  3. Install it :D
  4. (optional) If you have multiple versions you can for example set a virtual env for the correct JAVA Version by adding the correct binary path at the start of PATH Var like this
export PATH="/usr/lib/jvm/java-18-openjdk-amd64/bin/java:$PATH"

Please note that other solutions listed above will also work fine, but this answer add some context and will just be easier than to update all your project's gradle version.

Have a nice day 👋🏼

Upvotes: 2

Marcelo Cesar
Marcelo Cesar

Reputation: 178

I was getting this issue:

FAILURE: Build failed with an exception.
  • Where: Build file '/home/marcelo-cesar/Desktop/Overseasconnection-player-teams/android/app/build.gradle' line: 47

  • What went wrong: A problem occurred evaluating project ':app'.

Could not find method minSdkVersion() for arguments [19, null] on DefaultConfig$AgpDecorated_Decorated{name=main, dimension=null, minSdkVersion=null, targetSdkVersion=null, renderscriptTargetApi=null, renderscriptSupportModeEnabled=null, renderscriptSupportModeBlasEnabled=null, renderscriptNdkModeEnabled=null, versionCode=null, versionName=null, applicationId=com.ls.overseasagent, testApplicationId=null, testInstrumentationRunner=null, testInstrumentationRunnerArguments={}, testHandleProfiling=null, testFunctionalTest=null, signingConfig=null, resConfig=[], buildConfigFields={}, resValues={}, proguardFiles=[], consumerProguardFiles=[], manifestPlaceholders={applicationName=android.app.Application}, wearAppUnbundled=null} of type com.android.build.gradle.internal.dsl.DefaultConfig$AgpDecorated.

  • 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.

BUILD FAILED in 3s Exception: Gradle task assembleDebug failed with exit code 1 Exited (sigterm)

I solved it by making these changes: In android/build.gradle update these lines with these following:

ext.kotlin_version = '1.7.10'
classpath 'com.android.tools.build:gradle:7.3.1'

In android/app/build.gradle update with this value: compileSdkVersion 33

defaultConfig {

… minSdkVersion 21 targetSdkVersion 31 }

In android/gradle/wrapper/gradle-wrapper.properties update distribution line with this:

distributionUrl=https://services.gradle.org/distributions/gradle-7.5-all.zip

Upvotes: 0

Tal Haham
Tal Haham

Reputation: 1628

In late 2022, Android Studio can fix that and upgrade Gradle:

  1. Open the main flutter project in Android Studio
  2. Right click on the android module. Choose "Flutter". Choose Open Android module in Android Studio, I opened in a new window
  3. Then, in the lower right corner, Android Studio presents a message suggesting to upgrade Gradle. Follow this suggestion!
  4. After that, you can close the Android project window

Based on Nick Fortescue answer

Upvotes: 0

Nick Fortescue
Nick Fortescue

Reputation: 44153

An update for 2022, Android Studio Dolphin. The other answers gave me a start, but are no longer up-to-date.

  1. Open the main flutter project in Android Studio
  2. Right click on the [android] module. Choose "Flutter". Choose Open Android module in Android Studio
  3. I opened in a new window, but this probably isn't required.
  4. As it says in the text here , choose on the menu (you must be in the "Android" project)
    • File
    • Project Structure
    • Project
  5. Click the Android Gradle Plugin Version dropdown and choose the latest version (or whatever one you want to update to)
  6. Click the Gradle Version dropdown and choose the latest version (or whatever one you want to update to)
  7. Give time for your Gradle to sync (it might have to download quite a lot, so be patient)
  8. Now you should be able to close the Android project window, and go back to the flutter project

Upvotes: 14

Andrii Kovalchuk
Andrii Kovalchuk

Reputation: 4897

Fast way of doing it:

  1. Open AndroidManifest.xml (andriod/app/src/main/AndroidManifest.xml)
  2. Click "Open for Editing in Android Studio"

enter image description here

Upvotes: -1

احمد شاكر
احمد شاكر

Reputation: 145

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

distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip

android/build.gradle:

classpath "com.android.tools.build:gradle:7.0.1"

in android/gradle.properties, add this:

org.gradle.java.home=C:\\Program Files\\Android\\Android Studio\\jre

Upvotes: 11

Andrii Kovalchuk
Andrii Kovalchuk

Reputation: 4897

The easiest way (I do so as Android Dev):

  1. Right click android folder in root folder
  2. Flutter
  3. Open in Android Studio
  4. Wait for it to load completely
  5. It'll ask you "Would you like to upgrade gradle?|"
  6. Click Yes
  7. flutter clean

Android studio open

Upvotes: 58

Cedric
Cedric

Reputation: 51

Upgrade gradle in a Flutter project. Open the file gradle-wrapper.properties located at {yourProjectName}/android/gradle/wrapper/gradle-wrapper.properties and replace the distributionUrl by changing the gradle version.

For example if you want to upgrade gradle from version 5.1.1 to 6.1.1, change the Url from https\://services.gradle.org/distributions/gradle-5.1.1-all.zip to https\://services.gradle.org/distributions/gradle-6.1.1-all.zip and rebuild your app.

Upvotes: 5

Jack
Jack

Reputation: 16708

Try renaming the android/ folder in your project. Then run flutter create . in the directory. This should recreate your android directory. Try your build again and see if it fixed your problem.

Upvotes: 9

eeqk
eeqk

Reputation: 3862

It appears as if audioplayers has an incompatible gradle version with your project.

Try upgrading audioplayers to the newest version, although this may not fix the issue, as the last comment in this thread was less than 24 hours ago.

audioplayers: ^0.18.3

Upvotes: 5

Related Questions