添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Table of Contents

Toggle

Flutter 3.19してAndroidで実行したら「You are applying Flutter's main Gradle plugin imperatively using the apply script method」という警告しました。URLの記載を見ながら修正はできましたが、ちょっと分かりずらかったので、メモを残しておきます。ご参考になれば、というのと、自分が後で必要になると思う。

警告文全体

You are applying Flutter's main Gradle plugin imperatively using the apply script method, which is deprecated and will be removed in a future release. Migrate to applying Gradle plugins with the declarative plugins block: https://flutter.dev/go/flutter-gradle-plugin-apply

android/build.gradle

buildscript { ext.kotlin_version = '1.8.22' repositories { google() mavenCentral() dependencies { classpath 'com.android.tools.build:gradle:7.3.0' classpath 'com.google.gms:google-services:4.3.13' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

kotlin_version と com.android.tools.build:gradleのバージョン をメモしておく。

ファイル冒頭に追加

allprojects { repositories { google() mavenCentral()

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.") (中略:ここは消さない。flutterVersionCodeとかflutterVersionNameとかは後で使われる) apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

以下をファイル冒頭に追加

plugins { id "com.android.application" id "kotlin-android" id "dev.flutter.flutter-gradle-plugin" id "com.google.gms.google-services" id "com.google.firebase.crashlytics"

id "com.google.gms.google-services"はFirebase等、 id "com.google.firebase.crashlytics" はFirebase Crashlytics が必要であれば追加。不要であれば、なくて良いはず。(あったら「Plugin [id: ‘com.google.gms.google-services’] was not found in any of the following sources:」とエラーが出た)

以下を dependencies の直前に追加

def kotlin_version = "1.8.22"

1.8.22 は、上記でメモしたもの。

android/setting.gradle

以下を削除

以下のようでしたが、ファイル全部書き換えのため削除。

include ':app' def localPropertiesFile = new File(rootProject.projectDir, "local.properties") def properties = new Properties() assert localPropertiesFile.exists() localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } def flutterSdkPath = properties.getProperty("flutter.sdk") assert flutterSdkPath != null, "flutter.sdk not set in local.properties" apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.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 settings.ext.flutterSdkPath = flutterSdkPath() includeBuild("${settings.ext.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 "7.3.0" apply false id "org.jetbrains.kotlin.android" version "1.8.22" apply false id "com.google.gms.google-services" version "4.4.0" apply false id "com.google.firebase.crashlytics" version "2.9.9" apply false include ":app"

org.jetbrains.kotlin.android のバージョンはメモしたkotlin_versionを記載する
com.android.application のバージョンはメモしたcom.android.tools.build:gradleのバージョンを記載する。
id "com.google.gms.google-services"の行はFirebase等、 id "com.google.firebase.crashlytics" の行はFirebase Crashlytics が必要であれば追加。不要であれば、なくて良いはず。

Deprecated imperative apply of Flutter's Gradle plugins

・Udemyベストセラー講師(riverpodの講座、2022年3月現在) ・Flutter好き過ぎて、Udemyにて4講座作成 ・アウトプット: http://flutter.salon, http://zenn.dev/sakusin、Flutterを1日1呟き

フォーローしてね!