Решил обновить один из старых проектов и при сборке версии для Андроид вижу ошибку с ссылкой в тексте https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply. И для статьи может и не было бы смысла. Но.... Я не смог сходу разобраться, поэтому решил разложить все немного подробнее.
Погнали.
1. Открываем файл /android/build.gradle и находим версию kotlin и версию gradle
2. Открываем файл android/settings.gradle (я тоже удивился что такой файл есть) и просто вставляем текст ниже
pluginManagement { def flutterSdkPath = { def properties = new Properties() file("local.properties").withInputStream { properties.load(it) } def flutterSdkPath = properties.getProperty("flutter.sdk") assert flutterSdkPath != null, "flutter.sdk not set in local.properties" return flutterSdkPath }() includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") repositories { google() mavenCentral() gradlePluginPortal() } } plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "{agpVersion}" apply false id "org.jetbrains.kotlin.android" version "{kotlinVersion}" apply false } include ":app"
Можно скопировать по оригинальной ссылке, для простоты
3. Заменяем {agpVersion} на версию gradle из пункта 1
4. Заменяем {kotlinVersion} на версию kotlin из пункта 1
5. Открываем файл /android/build.gradle и удаляем все, что связано с buildScript
6. Открываем файл /android/app/build.gradle и удаляем
-def flutterRoot = localProperties.getProperty('flutter.sdk')
-if (flutterRoot == null) {
- throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
-}
7. В том же файле комментируем применение плагинов
-apply plugin: 'com.android.application'
-apply plugin: 'com.jetbrains.kotlin.android'
-apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
8. Теперь переписываем закоментированый кусок в новом формате
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}
Важный момент! Кусок plugins должен быть в самом верху файла
9. В этом же файле в блоке dependencies удаляем org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version (если есть)
10. flutter run и выдыхаем