🔥
Flutter 3.16 Androidのmigration対応
背景
flutterをupgradeしたらmigrationの警告が出ていたので対応した。
Diff
android/app/build.gradle
diff --git a/android/app/build.gradle b/android/app/build.gradle
index e5fa5e9..d681e7b 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -1,3 +1,11 @@
+plugins {
+ id "com.android.application"
+ id "kotlin-android"
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
+ id "dev.flutter.flutter-gradle-plugin"
+ id "com.google.gms.google-services"
+}
+
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
@@ -6,11 +14,6 @@ if (localPropertiesFile.exists()) {
}
}
-def flutterRoot = localProperties.getProperty('flutter.sdk')
-if (flutterRoot == null) {
- throw new FileNotFoundException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
-}
-
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
@@ -21,32 +24,20 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
-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"
-
android {
- namespace "com.example.myapp"
- compileSdkVersion 33
+ namespace = "com.example.myapp"
+ compileSdk = flutter.compileSdkVersion
+ ndkVersion = flutter.ndkVersion
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
-
- kotlinOptions {
- jvmTarget = '1.8'
- }
-
- sourceSets {
- main.java.srcDirs += 'src/main/kotlin'
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
}
defaultConfig {
- applicationId "com.example.myapp"
- minSdkVersion 23
- targetSdkVersion 33
+ applicationId = "com.example.myapp"
+ minSdkVersion = 23
+ targetSdkVersion = 33
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
@@ -93,6 +84,6 @@ flutter {
}
dependencies {
- implementation platform('com.google.firebase:firebase-bom:32.4.0')
+ implementation platform('com.google.firebase:firebase-bom:33.1.2')
// implementation 'com.google.firebase:firebase-analytics-ktx'
}
android/build.gradle
diff --git a/android/build.gradle b/android/build.gradle
index 59f6ce6..bc157bd 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,17 +1,3 @@
-buildscript {
- ext.kotlin_version = '1.7.21'
- repositories {
- google()
- mavenCentral()
- }
-
- dependencies {
- classpath 'com.android.tools.build:gradle:8.1.0'
- classpath 'com.google.gms:google-services:4.4.0'
- classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0'
- }
-}
-
allprojects {
repositories {
google()
@@ -22,6 +8,8 @@ allprojects {
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
project.evaluationDependsOn(':app')
}
android/gradle.properties
diff --git a/android/gradle.properties b/android/gradle.properties
index 94adc3a..3b5b324 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,3 +1,3 @@
-org.gradle.jvmargs=-Xmx1536M
+org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
android.enableJetifier=true
android/settings.gradle
diff --git a/android/settings.gradle b/android/settings.gradle
index 44e62bc..05b33c2 100644
--- a/android/settings.gradle
+++ b/android/settings.gradle
@@ -1,11 +1,26 @@
-include ':app'
+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
+ }()
-def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
-def properties = new Properties()
+ includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
-assert localPropertiesFile.exists()
-localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
-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"
+plugins {
+ id "dev.flutter.flutter-plugin-loader" version "1.0.0"
+ id "com.android.application" version "8.1.0" apply false
+ id "org.jetbrains.kotlin.android" version "1.9.0" apply false
+ id 'com.google.gms.google-services' version '4.4.0' apply false
+}
+
+include ":app"
Discussion