Migrating an old Flutter project (using older Android Gradle and build.gradle Groovy files) to the latest Flutter version (3.22) which now defaults to Kotlin DSL (build.gradle.kts), involves several steps.

Objective:

Migrate your existing android/build.gradle, android/app/build.gradle, and related files from Groovy (.gradle) to Kotlin DSL (.gradle.kts) format while ensuring compatibility with Flutter 3.22 and AGP (Android Gradle Plugin) 8+.

Step-by-step Migration Guide:

1. Upgrade Flutter SDK to 3.22

Make sure you’re on Flutter 3.22:

flutter upgrade
flutter --version

2. Backup Your Project

Before any change, back up your current project (e.g. via Git or zip).


3. Update Gradle Wrapper

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

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

Gradle 8.4 is compatible with AGP 8.4+ and Kotlin DSL.


4. Convert Groovy .gradle to Kotlin DSL .gradle.kts

Rename:

  • android/build.gradleandroid/build.gradle.kts
  • android/app/build.gradleandroid/app/build.gradle.kts
  • Update settings.gradlesettings.gradle.kts

5. Edit build.gradle.kts (Project-level)

Example android/build.gradle.kts:

// File: android/build.gradle.kts
buildscript {
dependencies {
classpath("com.android.tools.build:gradle:8.4.0")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.24")
}
}

allprojects {
repositories {
google()
mavenCentral()
}
}

6. Edit app/build.gradle.kts (App-level)

Here’s a minimal example for android/app/build.gradle.kts:

// File: android/app/build.gradle.kts
plugins {
id("com.android.application")
kotlin("android")
}

android {
namespace = "com.example.yourapp"
compileSdk = 34

defaultConfig {
applicationId = "com.example.yourapp"
minSdk = 21
targetSdk = 34
versionCode = 1
versionName = "1.0"
}

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
}

dependencies {
implementation("androidx.core:core-ktx:1.13.1")
implementation("androidx.appcompat:appcompat:1.6.1")
}

7. Update settings.gradle.kts

Replace settings.gradle with settings.gradle.kts:

// File: android/settings.gradle.kts
include(":app")

8. Update Flutter Build Configuration

Make sure flutter.gradle is still referenced. You might need to update:

// android/build.gradle.kts (under buildscript)
classpath("com.google.gms:google-services:4.4.0")
classpath("com.android.tools.build:gradle:8.4.0")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.24")

In app/build.gradle.kts, apply:

apply(from = "../flutter.gradle.kts")

9. Update Gradle Properties

Edit android/gradle.properties:

propertiesCopyEditorg.gradle.jvmargs=-Xmx2048m
android.useAndroidX=true
kotlin.code.style=official

10. Clean and Build

flutter clean
flutter pub get
flutter build apk

Common Issues:

IssueFix
DSL errors like compileSdkVersion not foundYou’re still using Groovy-style in Kotlin DSL – adjust syntax (compileSdkVersion = 34compileSdk = 34)
Plugins not foundEnsure plugins block is used at the top of .gradle.kts
flutter.gradle not appliedUse apply(from = "../flutter.gradle.kts") or keep the Groovy file and reference it

Final Tip

If you want a fully working sample with Kotlin DSL, create a new Flutter project with:

flutter create --platforms android -a kotlin my_new_app

Then compare the android/ folder structure and Kotlin DSL syntax with your project.

Also Read :- How to update laravel project with latest version step by step guide

Categories: Flutter

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *