diff --git a/packages/cloud_firestore/cloud_firestore/android/build.gradle b/packages/cloud_firestore/cloud_firestore/android/build.gradle index b960667d372b..2c6840eb2211 100755 --- a/packages/cloud_firestore/cloud_firestore/android/build.gradle +++ b/packages/cloud_firestore/cloud_firestore/android/build.gradle @@ -1,12 +1,14 @@ group 'io.flutter.plugins.firebase.cloudfirestore' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { repositories { google() mavenCentral() } - dependencies { classpath 'com.android.tools.build:gradle:8.3.0' } @@ -19,7 +21,6 @@ allprojects { } } -apply plugin: 'com.android.library' def firebaseCoreProject = findProject(':firebase_core') if (firebaseCoreProject == null) { @@ -40,16 +41,16 @@ android { namespace 'io.flutter.plugins.firebase.firestore' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 + minSdkVersion project.ext.minSdk testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } buildFeatures { diff --git a/packages/cloud_firestore/cloud_firestore/android/local-config.gradle b/packages/cloud_firestore/cloud_firestore/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/cloud_firestore/cloud_firestore/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/cloud_firestore/cloud_firestore/android/settings.gradle b/packages/cloud_firestore/cloud_firestore/android/settings.gradle index caf10656889a..3f25aa26e407 100755 --- a/packages/cloud_firestore/cloud_firestore/android/settings.gradle +++ b/packages/cloud_firestore/cloud_firestore/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'cloud_firestore' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/cloud_firestore/cloud_firestore/example/android/app/build.gradle b/packages/cloud_firestore/cloud_firestore/example/android/app/build.gradle index 9f10cb25819c..95f7b105d03e 100644 --- a/packages/cloud_firestore/cloud_firestore/example/android/app/build.gradle +++ b/packages/cloud_firestore/cloud_firestore/example/android/app/build.gradle @@ -7,6 +7,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -32,8 +33,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/cloud_firestore/cloud_firestore/example/android/gradle.properties b/packages/cloud_firestore/cloud_firestore/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/cloud_firestore/cloud_firestore/example/android/gradle.properties +++ b/packages/cloud_firestore/cloud_firestore/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/cloud_firestore/cloud_firestore/example/android/settings.gradle b/packages/cloud_firestore/cloud_firestore/example/android/settings.gradle index a4d924db8bec..30463c1cf2f2 100644 --- a/packages/cloud_firestore/cloud_firestore/example/android/settings.gradle +++ b/packages/cloud_firestore/cloud_firestore/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.3.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/packages/cloud_functions/cloud_functions/android/build.gradle b/packages/cloud_functions/cloud_functions/android/build.gradle index 2e21f4ba4d89..be2e75d11149 100644 --- a/packages/cloud_functions/cloud_functions/android/build.gradle +++ b/packages/cloud_functions/cloud_functions/android/build.gradle @@ -1,15 +1,14 @@ group 'io.flutter.plugins.firebase.cloudfunctions' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { repositories { google() mavenCentral() } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' - } } rootProject.allprojects { @@ -19,8 +18,6 @@ rootProject.allprojects { } } -apply plugin: 'com.android.library' - def firebaseCoreProject = findProject(':firebase_core') if (firebaseCoreProject == null) { throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?') @@ -40,17 +37,18 @@ android { namespace 'io.flutter.plugins.firebase.functions' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + minSdkVersion project.ext.minSdk + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } + buildFeatures { buildConfig = true } diff --git a/packages/cloud_functions/cloud_functions/android/local-config.gradle b/packages/cloud_functions/cloud_functions/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/cloud_functions/cloud_functions/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/cloud_functions/cloud_functions/android/settings.gradle b/packages/cloud_functions/cloud_functions/android/settings.gradle index 94986afd276c..0fcd910d1c3c 100644 --- a/packages/cloud_functions/cloud_functions/android/settings.gradle +++ b/packages/cloud_functions/cloud_functions/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'cloud_functions' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/cloud_functions/cloud_functions/example/android/app/build.gradle b/packages/cloud_functions/cloud_functions/example/android/app/build.gradle index c731b21805fa..f4d2b35731f2 100644 --- a/packages/cloud_functions/cloud_functions/example/android/app/build.gradle +++ b/packages/cloud_functions/cloud_functions/example/android/app/build.gradle @@ -7,6 +7,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -32,8 +33,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/cloud_functions/cloud_functions/example/android/gradle.properties b/packages/cloud_functions/cloud_functions/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/cloud_functions/cloud_functions/example/android/gradle.properties +++ b/packages/cloud_functions/cloud_functions/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/cloud_functions/cloud_functions/example/android/settings.gradle b/packages/cloud_functions/cloud_functions/example/android/settings.gradle index f1a7cdf2514b..30463c1cf2f2 100644 --- a/packages/cloud_functions/cloud_functions/example/android/settings.gradle +++ b/packages/cloud_functions/cloud_functions/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.1.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/packages/firebase_analytics/firebase_analytics/android/build.gradle b/packages/firebase_analytics/firebase_analytics/android/build.gradle index 4f07521e8a4c..41533c10483d 100755 --- a/packages/firebase_analytics/firebase_analytics/android/build.gradle +++ b/packages/firebase_analytics/firebase_analytics/android/build.gradle @@ -1,6 +1,9 @@ group 'io.flutter.plugins.firebase.analytics' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { ext.kotlin_version = "1.8.22" repositories { @@ -43,10 +46,10 @@ android { namespace 'io.flutter.plugins.firebase.analytics' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 + minSdkVersion project.ext.minSdk testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -55,8 +58,8 @@ android { } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } sourceSets { diff --git a/packages/firebase_analytics/firebase_analytics/android/local-config.gradle b/packages/firebase_analytics/firebase_analytics/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_analytics/firebase_analytics/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_analytics/firebase_analytics/android/settings.gradle b/packages/firebase_analytics/firebase_analytics/android/settings.gradle index 4b80dda8afc7..b9b8bf755cea 100755 --- a/packages/firebase_analytics/firebase_analytics/android/settings.gradle +++ b/packages/firebase_analytics/firebase_analytics/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'firebase_analytics' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/firebase_analytics/firebase_analytics/example/android/app/build.gradle b/packages/firebase_analytics/firebase_analytics/example/android/app/build.gradle index 0f4ded4a249f..b0a12e0a4923 100644 --- a/packages/firebase_analytics/firebase_analytics/example/android/app/build.gradle +++ b/packages/firebase_analytics/firebase_analytics/example/android/app/build.gradle @@ -7,6 +7,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -32,8 +33,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/firebase_analytics/firebase_analytics/example/android/gradle.properties b/packages/firebase_analytics/firebase_analytics/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_analytics/firebase_analytics/example/android/gradle.properties +++ b/packages/firebase_analytics/firebase_analytics/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_analytics/firebase_analytics/example/android/settings.gradle b/packages/firebase_analytics/firebase_analytics/example/android/settings.gradle index 8f6184ac580e..4fb566e9929e 100644 --- a/packages/firebase_analytics/firebase_analytics/example/android/settings.gradle +++ b/packages/firebase_analytics/firebase_analytics/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.1.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/packages/firebase_app_check/firebase_app_check/android/build.gradle b/packages/firebase_app_check/firebase_app_check/android/build.gradle index 2bb23a4cbf85..467c4a32280c 100644 --- a/packages/firebase_app_check/firebase_app_check/android/build.gradle +++ b/packages/firebase_app_check/firebase_app_check/android/build.gradle @@ -1,6 +1,9 @@ group 'io.flutter.plugins.firebase.appcheck' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { repositories { google() @@ -19,8 +22,6 @@ rootProject.allprojects { } } -apply plugin: 'com.android.library' - def firebaseCoreProject = findProject(':firebase_core') if (firebaseCoreProject == null) { throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?') @@ -40,16 +41,16 @@ android { namespace 'io.flutter.plugins.firebase.appcheck' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 + minSdkVersion project.ext.minSdk testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } buildFeatures { diff --git a/packages/firebase_app_check/firebase_app_check/android/local-config.gradle b/packages/firebase_app_check/firebase_app_check/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_app_check/firebase_app_check/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_app_check/firebase_app_check/android/settings.gradle b/packages/firebase_app_check/firebase_app_check/android/settings.gradle index 5cd8520f8176..11ac1690729d 100644 --- a/packages/firebase_app_check/firebase_app_check/android/settings.gradle +++ b/packages/firebase_app_check/firebase_app_check/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'firebase_app_check' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/firebase_app_check/firebase_app_check/example/android/app/build.gradle b/packages/firebase_app_check/firebase_app_check/example/android/app/build.gradle index 684e3b6d72bb..be0098ca048d 100644 --- a/packages/firebase_app_check/firebase_app_check/example/android/app/build.gradle +++ b/packages/firebase_app_check/firebase_app_check/example/android/app/build.gradle @@ -7,6 +7,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -32,8 +33,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/firebase_app_check/firebase_app_check/example/android/gradle.properties b/packages/firebase_app_check/firebase_app_check/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_app_check/firebase_app_check/example/android/gradle.properties +++ b/packages/firebase_app_check/firebase_app_check/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_app_check/firebase_app_check/example/android/settings.gradle b/packages/firebase_app_check/firebase_app_check/example/android/settings.gradle index a4d924db8bec..30463c1cf2f2 100644 --- a/packages/firebase_app_check/firebase_app_check/example/android/settings.gradle +++ b/packages/firebase_app_check/firebase_app_check/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.3.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/packages/firebase_app_installations/firebase_app_installations/android/build.gradle b/packages/firebase_app_installations/firebase_app_installations/android/build.gradle index 20b145376854..e4ad7c1cade5 100644 --- a/packages/firebase_app_installations/firebase_app_installations/android/build.gradle +++ b/packages/firebase_app_installations/firebase_app_installations/android/build.gradle @@ -1,15 +1,14 @@ group 'io.flutter.plugins.firebase.installations.firebase_app_installations' version '1.0' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { repositories { google() mavenCentral() } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' - } } rootProject.allprojects { @@ -19,9 +18,7 @@ rootProject.allprojects { } } -apply plugin: 'com.android.library' - -def firebaseCoreProject = findProject(':firebase_core') +def firebaseCoreProject = rootProject.subprojects.find { it.name == "firebase_core" } if (firebaseCoreProject == null) { throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?') } else if (!firebaseCoreProject.properties['FirebaseSDKVersion']) { @@ -40,15 +37,16 @@ android { namespace 'io.flutter.plugins.firebase.installations.firebase_app_installations' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 + minSdkVersion project.ext.minSdk + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } buildFeatures { diff --git a/packages/firebase_app_installations/firebase_app_installations/android/local-config.gradle b/packages/firebase_app_installations/firebase_app_installations/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_app_installations/firebase_app_installations/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_app_installations/firebase_app_installations/android/settings.gradle b/packages/firebase_app_installations/firebase_app_installations/android/settings.gradle index aee00677e78a..b146463b0765 100644 --- a/packages/firebase_app_installations/firebase_app_installations/android/settings.gradle +++ b/packages/firebase_app_installations/firebase_app_installations/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'firebase_app_installations' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/firebase_app_installations/firebase_app_installations/example/android/app/build.gradle b/packages/firebase_app_installations/firebase_app_installations/example/android/app/build.gradle index 1b9bb1a8e8c4..7d1b2e81d27a 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/android/app/build.gradle +++ b/packages/firebase_app_installations/firebase_app_installations/example/android/app/build.gradle @@ -7,6 +7,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -32,8 +33,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/firebase_app_installations/firebase_app_installations/example/android/gradle.properties b/packages/firebase_app_installations/firebase_app_installations/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/android/gradle.properties +++ b/packages/firebase_app_installations/firebase_app_installations/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_app_installations/firebase_app_installations/example/android/settings.gradle b/packages/firebase_app_installations/firebase_app_installations/example/android/settings.gradle index 40cbd22bb13b..30463c1cf2f2 100644 --- a/packages/firebase_app_installations/firebase_app_installations/example/android/settings.gradle +++ b/packages/firebase_app_installations/firebase_app_installations/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/packages/firebase_auth/firebase_auth/android/build.gradle b/packages/firebase_auth/firebase_auth/android/build.gradle index a6abd8a18c3a..100357c00500 100755 --- a/packages/firebase_auth/firebase_auth/android/build.gradle +++ b/packages/firebase_auth/firebase_auth/android/build.gradle @@ -1,15 +1,13 @@ group 'io.flutter.plugins.firebase.auth' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' + buildscript { repositories { google() mavenCentral() } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' - } } allprojects { @@ -32,23 +30,22 @@ def getRootProjectExtOrCoreProperty(name, firebaseCoreProject) { return rootProject.ext.get('FlutterFire').get(name) } -apply plugin: 'com.android.library' - android { // Conditional for compatibility with AGP <4.2. if (project.android.hasProperty("namespace")) { namespace 'io.flutter.plugins.firebase.auth' } - compileSdk 35 + compileSdkVersion 34 defaultConfig { - minSdk 23 + minSdkVersion 21 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } + compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility JavaVersion.toVersion(17) + targetCompatibility JavaVersion.toVersion(17) } buildFeatures { diff --git a/packages/firebase_auth/firebase_auth/android/settings.gradle b/packages/firebase_auth/firebase_auth/android/settings.gradle index acfe1855910f..cb98a9f3a247 100755 --- a/packages/firebase_auth/firebase_auth/android/settings.gradle +++ b/packages/firebase_auth/firebase_auth/android/settings.gradle @@ -1 +1,8 @@ rootProject.name = 'firebase_auth' + +pluginManagement { + plugins { + id "com.android.application" version "8.2.1" + id "com.android.library" version "8.2.1" + } +} diff --git a/packages/firebase_core/firebase_core/android/build.gradle b/packages/firebase_core/firebase_core/android/build.gradle index 6f9775b69f7a..33904fddc266 100644 --- a/packages/firebase_core/firebase_core/android/build.gradle +++ b/packages/firebase_core/firebase_core/android/build.gradle @@ -1,19 +1,16 @@ group 'io.flutter.plugins.firebase.core' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { repositories { google() mavenCentral() } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' - } } -apply plugin: 'com.android.library' - def getRootProjectExtOrDefaultProperty(name) { if (!rootProject.ext.has("FlutterFire")) return project.properties[name] if (!rootProject.ext.get("FlutterFire")[name]) return project.properties[name] @@ -26,16 +23,17 @@ android { namespace 'io.flutter.plugins.firebase.core' } - compileSdk 35 + compileSdk project.ext.compileSdk defaultConfig { - minSdk 21 + minSdkVersion project.ext.minSdk + targetSdkVersion project.ext.targetSdk testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } buildFeatures { diff --git a/packages/firebase_core/firebase_core/android/local-config.gradle b/packages/firebase_core/firebase_core/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_core/firebase_core/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/android/settings.gradle b/packages/firebase_core/firebase_core/android/settings.gradle index 6b9f7039d668..1689243f09d5 100644 --- a/packages/firebase_core/firebase_core/android/settings.gradle +++ b/packages/firebase_core/firebase_core/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'firebase_core' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/firebase_core/firebase_core/example/android/app/build.gradle b/packages/firebase_core/firebase_core/example/android/app/build.gradle index fed55ad43d2a..9825d48ea862 100644 --- a/packages/firebase_core/firebase_core/example/android/app/build.gradle +++ b/packages/firebase_core/firebase_core/example/android/app/build.gradle @@ -7,6 +7,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -32,8 +33,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/firebase_core/firebase_core/example/android/gradle.properties b/packages/firebase_core/firebase_core/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_core/firebase_core/example/android/gradle.properties +++ b/packages/firebase_core/firebase_core/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_core/firebase_core/example/android/settings.gradle b/packages/firebase_core/firebase_core/example/android/settings.gradle index 40cbd22bb13b..30463c1cf2f2 100644 --- a/packages/firebase_core/firebase_core/example/android/settings.gradle +++ b/packages/firebase_core/firebase_core/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/packages/firebase_crashlytics/firebase_crashlytics/android/build.gradle b/packages/firebase_crashlytics/firebase_crashlytics/android/build.gradle index 71f56c75d5ac..97476950e971 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/android/build.gradle +++ b/packages/firebase_crashlytics/firebase_crashlytics/android/build.gradle @@ -1,15 +1,14 @@ group 'io.flutter.plugins.firebase.crashlytics' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { repositories { google() mavenCentral() } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' - } } rootProject.allprojects { @@ -19,7 +18,6 @@ rootProject.allprojects { } } -apply plugin: 'com.android.library' def firebaseCoreProject = findProject(':firebase_core') if (firebaseCoreProject == null) { throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?') @@ -39,16 +37,16 @@ android { namespace 'io.flutter.plugins.firebase.crashlytics' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 + minSdkVersion project.ext.minSdk testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } buildFeatures { diff --git a/packages/firebase_crashlytics/firebase_crashlytics/android/local-config.gradle b/packages/firebase_crashlytics/firebase_crashlytics/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_crashlytics/firebase_crashlytics/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_crashlytics/firebase_crashlytics/android/settings.gradle b/packages/firebase_crashlytics/firebase_crashlytics/android/settings.gradle index 0db0f63e40fd..8e6488457202 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/android/settings.gradle +++ b/packages/firebase_crashlytics/firebase_crashlytics/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'firebase_crashlytics' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/android/app/build.gradle b/packages/firebase_crashlytics/firebase_crashlytics/example/android/app/build.gradle index af82ea6d4ada..dc7156338ae3 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/android/app/build.gradle +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/android/app/build.gradle @@ -8,6 +8,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -33,8 +34,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/android/gradle.properties b/packages/firebase_crashlytics/firebase_crashlytics/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/android/gradle.properties +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_crashlytics/firebase_crashlytics/example/android/settings.gradle b/packages/firebase_crashlytics/firebase_crashlytics/example/android/settings.gradle index a1b1cb2596e7..abfc4f1fc971 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/example/android/settings.gradle +++ b/packages/firebase_crashlytics/firebase_crashlytics/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.1.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false id "com.google.firebase.crashlytics" version "2.8.1" apply false diff --git a/packages/firebase_data_connect/firebase_data_connect/example/android/app/build.gradle b/packages/firebase_data_connect/firebase_data_connect/example/android/app/build.gradle index 1e2e2b673008..ac9c21031742 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/android/app/build.gradle +++ b/packages/firebase_data_connect/firebase_data_connect/example/android/app/build.gradle @@ -4,6 +4,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -29,8 +30,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/firebase_data_connect/firebase_data_connect/example/android/app/local-config.gradle b/packages/firebase_data_connect/firebase_data_connect/example/android/app/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_data_connect/firebase_data_connect/example/android/app/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_data_connect/firebase_data_connect/example/android/gradle.properties b/packages/firebase_data_connect/firebase_data_connect/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/android/gradle.properties +++ b/packages/firebase_data_connect/firebase_data_connect/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_data_connect/firebase_data_connect/example/android/settings.gradle b/packages/firebase_data_connect/firebase_data_connect/example/android/settings.gradle index 310d198e4e1d..30463c1cf2f2 100644 --- a/packages/firebase_data_connect/firebase_data_connect/example/android/settings.gradle +++ b/packages/firebase_data_connect/firebase_data_connect/example/android/settings.gradle @@ -18,8 +18,10 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - - id "com.android.application" version "8.3.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false + // START: FlutterFire Configuration + id "com.google.gms.google-services" version "4.3.15" apply false + // END: FlutterFire Configuration id "org.jetbrains.kotlin.android" version "1.9.22" apply false } diff --git a/packages/firebase_database/firebase_database/android/build.gradle b/packages/firebase_database/firebase_database/android/build.gradle index f24038466b3f..bdf3a78ddbbd 100755 --- a/packages/firebase_database/firebase_database/android/build.gradle +++ b/packages/firebase_database/firebase_database/android/build.gradle @@ -1,15 +1,14 @@ group 'io.flutter.plugins.firebase.database' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { repositories { google() mavenCentral() } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' - } } rootProject.allprojects { @@ -19,8 +18,6 @@ rootProject.allprojects { } } -apply plugin: 'com.android.library' - def firebaseCoreProject = findProject(':firebase_core') if (firebaseCoreProject == null) { throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?') @@ -40,16 +37,16 @@ android { namespace 'io.flutter.plugins.firebase.database' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 + minSdkVersion project.ext.minSdk testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } buildFeatures { diff --git a/packages/firebase_database/firebase_database/android/local-config.gradle b/packages/firebase_database/firebase_database/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_database/firebase_database/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_database/firebase_database/android/settings.gradle b/packages/firebase_database/firebase_database/android/settings.gradle index 853b33390159..cd0aad296053 100755 --- a/packages/firebase_database/firebase_database/android/settings.gradle +++ b/packages/firebase_database/firebase_database/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'firebase_database' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/firebase_database/firebase_database/example/android/app/build.gradle b/packages/firebase_database/firebase_database/example/android/app/build.gradle index f58f58e5d8e3..a9faac52d630 100644 --- a/packages/firebase_database/firebase_database/example/android/app/build.gradle +++ b/packages/firebase_database/firebase_database/example/android/app/build.gradle @@ -7,6 +7,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -32,8 +33,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/firebase_database/firebase_database/example/android/gradle.properties b/packages/firebase_database/firebase_database/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_database/firebase_database/example/android/gradle.properties +++ b/packages/firebase_database/firebase_database/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_database/firebase_database/example/android/settings.gradle b/packages/firebase_database/firebase_database/example/android/settings.gradle index 40cbd22bb13b..30463c1cf2f2 100644 --- a/packages/firebase_database/firebase_database/example/android/settings.gradle +++ b/packages/firebase_database/firebase_database/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/packages/firebase_dynamic_links/firebase_dynamic_links/android/build.gradle b/packages/firebase_dynamic_links/firebase_dynamic_links/android/build.gradle index 305f207a726f..325c2f50379b 100644 --- a/packages/firebase_dynamic_links/firebase_dynamic_links/android/build.gradle +++ b/packages/firebase_dynamic_links/firebase_dynamic_links/android/build.gradle @@ -1,15 +1,14 @@ group 'io.flutter.plugins.firebase.dynamiclinks' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { repositories { google() mavenCentral() } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' - } } rootProject.allprojects { @@ -19,8 +18,6 @@ rootProject.allprojects { } } -apply plugin: 'com.android.library' - def firebaseCoreProject = findProject(':firebase_core') if (firebaseCoreProject == null) { throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?') @@ -40,16 +37,16 @@ android { namespace 'io.flutter.plugins.firebase.dynamiclinks' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + minSdkVersion project.ext.minSdk + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } buildFeatures { diff --git a/packages/firebase_dynamic_links/firebase_dynamic_links/android/local-config.gradle b/packages/firebase_dynamic_links/firebase_dynamic_links/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_dynamic_links/firebase_dynamic_links/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_dynamic_links/firebase_dynamic_links/android/settings.gradle b/packages/firebase_dynamic_links/firebase_dynamic_links/android/settings.gradle index 2a833554f85c..86909274f0d6 100644 --- a/packages/firebase_dynamic_links/firebase_dynamic_links/android/settings.gradle +++ b/packages/firebase_dynamic_links/firebase_dynamic_links/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'firebase_dynamic_links' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/firebase_dynamic_links/firebase_dynamic_links/example/android/app/build.gradle b/packages/firebase_dynamic_links/firebase_dynamic_links/example/android/app/build.gradle index 9b5983cf9f9a..9ea784848caf 100644 --- a/packages/firebase_dynamic_links/firebase_dynamic_links/example/android/app/build.gradle +++ b/packages/firebase_dynamic_links/firebase_dynamic_links/example/android/app/build.gradle @@ -7,6 +7,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -32,8 +33,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/firebase_dynamic_links/firebase_dynamic_links/example/android/gradle.properties b/packages/firebase_dynamic_links/firebase_dynamic_links/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_dynamic_links/firebase_dynamic_links/example/android/gradle.properties +++ b/packages/firebase_dynamic_links/firebase_dynamic_links/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_dynamic_links/firebase_dynamic_links/example/android/settings.gradle b/packages/firebase_dynamic_links/firebase_dynamic_links/example/android/settings.gradle index 40cbd22bb13b..30463c1cf2f2 100644 --- a/packages/firebase_dynamic_links/firebase_dynamic_links/example/android/settings.gradle +++ b/packages/firebase_dynamic_links/firebase_dynamic_links/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/android/build.gradle b/packages/firebase_in_app_messaging/firebase_in_app_messaging/android/build.gradle index c9de2381db8b..0f9e3a498d60 100644 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/android/build.gradle +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/android/build.gradle @@ -1,15 +1,14 @@ group 'io.flutter.plugins.firebase.inappmessaging' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { repositories { google() mavenCentral() } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' - } } rootProject.allprojects { @@ -19,8 +18,6 @@ rootProject.allprojects { } } -apply plugin: 'com.android.library' - def firebaseCoreProject = findProject(':firebase_core') if (firebaseCoreProject == null) { throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?') @@ -40,16 +37,16 @@ android { namespace 'io.flutter.plugins.firebase.inappmessaging' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 + minSdkVersion project.ext.minSdk testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } buildFeatures { diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/android/local-config.gradle b/packages/firebase_in_app_messaging/firebase_in_app_messaging/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/android/settings.gradle b/packages/firebase_in_app_messaging/firebase_in_app_messaging/android/settings.gradle index 727175685e2b..78ac939d9166 100644 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/android/settings.gradle +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'firebase_in_app_messaging' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/android/app/build.gradle b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/android/app/build.gradle index 401f578edc37..a27c032b9325 100644 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/android/app/build.gradle +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/android/app/build.gradle @@ -7,6 +7,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -32,8 +33,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/android/gradle.properties b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/android/gradle.properties +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/android/settings.gradle b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/android/settings.gradle index 40cbd22bb13b..30463c1cf2f2 100644 --- a/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/android/settings.gradle +++ b/packages/firebase_in_app_messaging/firebase_in_app_messaging/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/packages/firebase_messaging/firebase_messaging/android/build.gradle b/packages/firebase_messaging/firebase_messaging/android/build.gradle index f93b9ef3f0f9..8a7291976765 100644 --- a/packages/firebase_messaging/firebase_messaging/android/build.gradle +++ b/packages/firebase_messaging/firebase_messaging/android/build.gradle @@ -1,15 +1,16 @@ group 'io.flutter.plugins.firebasemessaging' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + +androidGradlePluginVersion = project.ext.androidGradlePluginVersion + buildscript { repositories { google() mavenCentral() } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' - } } rootProject.allprojects { @@ -19,8 +20,6 @@ rootProject.allprojects { } } -apply plugin: 'com.android.library' - def firebaseCoreProject = findProject(':firebase_core') if (firebaseCoreProject == null) { throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?') @@ -40,16 +39,16 @@ android { namespace 'io.flutter.plugins.firebase.messaging' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + minSdkVersion project.ext.minSdk + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } buildFeatures { diff --git a/packages/firebase_messaging/firebase_messaging/android/local-config.gradle b/packages/firebase_messaging/firebase_messaging/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_messaging/firebase_messaging/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_messaging/firebase_messaging/android/settings.gradle b/packages/firebase_messaging/firebase_messaging/android/settings.gradle index f82964eb43a1..c645de8b147c 100644 --- a/packages/firebase_messaging/firebase_messaging/android/settings.gradle +++ b/packages/firebase_messaging/firebase_messaging/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'firebase_messaging' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/firebase_messaging/firebase_messaging/example/android/app/build.gradle b/packages/firebase_messaging/firebase_messaging/example/android/app/build.gradle index f2684a27ec57..5ab3e9883f29 100644 --- a/packages/firebase_messaging/firebase_messaging/example/android/app/build.gradle +++ b/packages/firebase_messaging/firebase_messaging/example/android/app/build.gradle @@ -7,6 +7,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -32,8 +33,14 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = javaVersion + targetCompatibility = javaVersion + // Require for flutter_notifications to work on sdk 21+ after AGP upgrade. + coreLibraryDesugaringEnabled true + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { @@ -55,6 +62,10 @@ android { } } +dependencies { + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' +} + flutter { source = "../.." } diff --git a/packages/firebase_messaging/firebase_messaging/example/android/gradle.properties b/packages/firebase_messaging/firebase_messaging/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_messaging/firebase_messaging/example/android/gradle.properties +++ b/packages/firebase_messaging/firebase_messaging/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_messaging/firebase_messaging/example/android/settings.gradle b/packages/firebase_messaging/firebase_messaging/example/android/settings.gradle index f1a7cdf2514b..30463c1cf2f2 100644 --- a/packages/firebase_messaging/firebase_messaging/example/android/settings.gradle +++ b/packages/firebase_messaging/firebase_messaging/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.1.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/android/build.gradle b/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/android/build.gradle index c3210371a6f2..952896e696cc 100644 --- a/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/android/build.gradle +++ b/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/android/build.gradle @@ -1,15 +1,14 @@ group 'io.flutter.plugins.firebase.firebase_ml_model_downloader' version '1.0' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { repositories { google() mavenCentral() } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' - } } rootProject.allprojects { @@ -32,24 +31,22 @@ def getRootProjectExtOrCoreProperty(name, firebaseCoreProject) { return rootProject.ext.get('FlutterFire').get(name) } -apply plugin: 'com.android.library' - android { // Conditional for compatibility with AGP <4.2. if (project.android.hasProperty("namespace")) { namespace 'io.flutter.plugins.firebase.firebase_ml_model_downloader' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + minSdkVersion project.ext.minSdk + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } buildFeatures { diff --git a/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/android/local-config.gradle b/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/android/settings.gradle b/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/android/settings.gradle index a9eadb293261..c3f031cf0552 100644 --- a/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/android/settings.gradle +++ b/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'firebase_ml_model_downloader' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/example/android/app/build.gradle b/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/example/android/app/build.gradle index 401f578edc37..a27c032b9325 100644 --- a/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/example/android/app/build.gradle +++ b/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/example/android/app/build.gradle @@ -7,6 +7,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -32,8 +33,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/example/android/gradle.properties b/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/example/android/gradle.properties +++ b/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/example/android/settings.gradle b/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/example/android/settings.gradle index 40cbd22bb13b..30463c1cf2f2 100644 --- a/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/example/android/settings.gradle +++ b/packages/firebase_ml_model_downloader/firebase_ml_model_downloader/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/packages/firebase_performance/firebase_performance/android/build.gradle b/packages/firebase_performance/firebase_performance/android/build.gradle index d3323b7ef988..8f0b4fb8a89d 100644 --- a/packages/firebase_performance/firebase_performance/android/build.gradle +++ b/packages/firebase_performance/firebase_performance/android/build.gradle @@ -1,15 +1,14 @@ group 'io.flutter.plugins.firebaseperformance' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { repositories { google() mavenCentral() } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' - } } rootProject.allprojects { @@ -19,8 +18,6 @@ rootProject.allprojects { } } -apply plugin: 'com.android.library' - def firebaseCoreProject = findProject(':firebase_core') if (firebaseCoreProject == null) { throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?') @@ -40,16 +37,16 @@ android { namespace 'io.flutter.plugins.firebase.performance' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 + minSdkVersion project.ext.minSdk testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } buildFeatures { diff --git a/packages/firebase_performance/firebase_performance/android/local-config.gradle b/packages/firebase_performance/firebase_performance/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_performance/firebase_performance/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_performance/firebase_performance/android/settings.gradle b/packages/firebase_performance/firebase_performance/android/settings.gradle index 50c3a2d77af8..972b4b96862d 100644 --- a/packages/firebase_performance/firebase_performance/android/settings.gradle +++ b/packages/firebase_performance/firebase_performance/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'firebase_performance' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/firebase_performance/firebase_performance/example/android/app/build.gradle b/packages/firebase_performance/firebase_performance/example/android/app/build.gradle index 228d0bc23eda..de298199be66 100644 --- a/packages/firebase_performance/firebase_performance/example/android/app/build.gradle +++ b/packages/firebase_performance/firebase_performance/example/android/app/build.gradle @@ -8,6 +8,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -33,8 +34,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/firebase_performance/firebase_performance/example/android/gradle.properties b/packages/firebase_performance/firebase_performance/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_performance/firebase_performance/example/android/gradle.properties +++ b/packages/firebase_performance/firebase_performance/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_performance/firebase_performance/example/android/settings.gradle b/packages/firebase_performance/firebase_performance/example/android/settings.gradle index f5479e6b412f..678f1d06b76e 100644 --- a/packages/firebase_performance/firebase_performance/example/android/settings.gradle +++ b/packages/firebase_performance/firebase_performance/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false id "com.google.firebase.firebase-perf" version "1.4.1" apply false diff --git a/packages/firebase_remote_config/firebase_remote_config/android/build.gradle b/packages/firebase_remote_config/firebase_remote_config/android/build.gradle index 58952364c46d..17c4c4ec04ee 100644 --- a/packages/firebase_remote_config/firebase_remote_config/android/build.gradle +++ b/packages/firebase_remote_config/firebase_remote_config/android/build.gradle @@ -1,15 +1,14 @@ group 'io.flutter.plugins.firebase.firebaseremoteconfig' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { repositories { google() mavenCentral() } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' - } } rootProject.allprojects { @@ -19,8 +18,6 @@ rootProject.allprojects { } } -apply plugin: 'com.android.library' - def firebaseCoreProject = findProject(':firebase_core') if (firebaseCoreProject == null) { throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?') @@ -40,16 +37,16 @@ android { namespace 'io.flutter.plugins.firebase.firebaseremoteconfig' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 + minSdkVersion project.ext.minSdk testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } buildFeatures { diff --git a/packages/firebase_remote_config/firebase_remote_config/android/local-config.gradle b/packages/firebase_remote_config/firebase_remote_config/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_remote_config/firebase_remote_config/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_remote_config/firebase_remote_config/android/settings.gradle b/packages/firebase_remote_config/firebase_remote_config/android/settings.gradle index 1ab71539c02f..c59b17006d16 100644 --- a/packages/firebase_remote_config/firebase_remote_config/android/settings.gradle +++ b/packages/firebase_remote_config/firebase_remote_config/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'firebase_remote_config' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/firebase_remote_config/firebase_remote_config/example/android/app/build.gradle b/packages/firebase_remote_config/firebase_remote_config/example/android/app/build.gradle index 20aeafddf497..75f3e44e0360 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/android/app/build.gradle +++ b/packages/firebase_remote_config/firebase_remote_config/example/android/app/build.gradle @@ -7,6 +7,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -32,8 +33,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/firebase_remote_config/firebase_remote_config/example/android/gradle.properties b/packages/firebase_remote_config/firebase_remote_config/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/android/gradle.properties +++ b/packages/firebase_remote_config/firebase_remote_config/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_remote_config/firebase_remote_config/example/android/settings.gradle b/packages/firebase_remote_config/firebase_remote_config/example/android/settings.gradle index f1a7cdf2514b..5f5242c6fd2f 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/android/settings.gradle +++ b/packages/firebase_remote_config/firebase_remote_config/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.1.0" apply false + id "com.android.application" version "8.2.1" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/packages/firebase_storage/firebase_storage/android/build.gradle b/packages/firebase_storage/firebase_storage/android/build.gradle index 629d0f3a60eb..cbd0de9d4ba6 100755 --- a/packages/firebase_storage/firebase_storage/android/build.gradle +++ b/packages/firebase_storage/firebase_storage/android/build.gradle @@ -1,15 +1,14 @@ group 'io.flutter.plugins.firebase.storage' version '1.0-SNAPSHOT' +apply plugin: 'com.android.library' +apply from: file("local-config.gradle") + buildscript { repositories { google() mavenCentral() } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' - } } rootProject.allprojects { @@ -27,8 +26,6 @@ allprojects { } } -apply plugin: 'com.android.library' - def firebaseCoreProject = findProject(':firebase_core') if (firebaseCoreProject == null) { throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?') @@ -48,16 +45,16 @@ android { namespace 'io.flutter.plugins.firebase.storage' } - compileSdk 35 + compileSdkVersion project.ext.compileSdk defaultConfig { - minSdk 21 + minSdkVersion project.ext.minSdk testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility project.ext.javaVersion + targetCompatibility project.ext.javaVersion } buildFeatures { diff --git a/packages/firebase_storage/firebase_storage/android/local-config.gradle b/packages/firebase_storage/firebase_storage/android/local-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/packages/firebase_storage/firebase_storage/android/local-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/packages/firebase_storage/firebase_storage/android/settings.gradle b/packages/firebase_storage/firebase_storage/android/settings.gradle index f0aec4453e6d..e691f422d4e9 100755 --- a/packages/firebase_storage/firebase_storage/android/settings.gradle +++ b/packages/firebase_storage/firebase_storage/android/settings.gradle @@ -1 +1,10 @@ rootProject.name = 'firebase_storage' + +apply from: file("local-config.gradle") + +pluginManagement { + plugins { + id "com.android.application" version project.ext.androidGradlePluginVersion + id "com.android.library" version project.ext.androidGradlePluginVersion + } +} diff --git a/packages/firebase_storage/firebase_storage/example/android/app/build.gradle b/packages/firebase_storage/firebase_storage/example/android/app/build.gradle index 6ba7545f3ca7..7fb7d1279df9 100644 --- a/packages/firebase_storage/firebase_storage/example/android/app/build.gradle +++ b/packages/firebase_storage/firebase_storage/example/android/app/build.gradle @@ -7,6 +7,7 @@ plugins { // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } +apply from: file("../../../android/local-config.gradle") def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") @@ -32,8 +33,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = project.ext.javaVersion + targetCompatibility = project.ext.javaVersion + } + + kotlinOptions { + jvmTarget = "17" } defaultConfig { diff --git a/packages/firebase_storage/firebase_storage/example/android/gradle.properties b/packages/firebase_storage/firebase_storage/example/android/gradle.properties index 3b5b324f6e3f..cfa33c060503 100644 --- a/packages/firebase_storage/firebase_storage/example/android/gradle.properties +++ b/packages/firebase_storage/firebase_storage/example/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +androidGradlePluginVersion=8.2.1 \ No newline at end of file diff --git a/packages/firebase_storage/firebase_storage/example/android/settings.gradle b/packages/firebase_storage/firebase_storage/example/android/settings.gradle index 40cbd22bb13b..30463c1cf2f2 100644 --- a/packages/firebase_storage/firebase_storage/example/android/settings.gradle +++ b/packages/firebase_storage/firebase_storage/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "${androidGradlePluginVersion}" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/packages/firebase_vertexai/firebase_vertexai/example/android/build.gradle b/packages/firebase_vertexai/firebase_vertexai/example/android/build.gradle index bc157bd1a12b..abea5db4d037 100644 --- a/packages/firebase_vertexai/firebase_vertexai/example/android/build.gradle +++ b/packages/firebase_vertexai/firebase_vertexai/example/android/build.gradle @@ -1,3 +1,16 @@ +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:8.2.1' + // START: FlutterFire Configuration + classpath 'com.google.gms:google-services:4.4.0' + // END: FlutterFire Configuration + } +} allprojects { repositories { google() diff --git a/packages/firebase_vertexai/firebase_vertexai/example/android/settings.gradle b/packages/firebase_vertexai/firebase_vertexai/example/android/settings.gradle index 40cbd22bb13b..5f5242c6fd2f 100644 --- a/packages/firebase_vertexai/firebase_vertexai/example/android/settings.gradle +++ b/packages/firebase_vertexai/firebase_vertexai/example/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "8.2.1" apply false // START: FlutterFire Configuration id "com.google.gms.google-services" version "4.3.15" apply false // END: FlutterFire Configuration diff --git a/scripts/generate_versions_gradle.dart b/scripts/generate_versions_gradle.dart new file mode 100644 index 000000000000..3121c387afc2 --- /dev/null +++ b/scripts/generate_versions_gradle.dart @@ -0,0 +1,165 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import 'package:melos/melos.dart' as melos; +import 'package:glob/glob.dart'; +import 'dart:io'; +import 'package:cli_util/cli_logging.dart' as logging; +import 'package:path/path.dart' show joinAll; + +// Used to generate config files from ../gradle/local-config.gradle in order to use correct java and compilation versions. +// Tested against every example app in the packages. +// NOTICE: This script does not update auth or vertexai packages as they are manually updated. +// Furthermore, this script does not update the test app. +void main() async { + final workspace = await getMelosWorkspace(); + // To edit versions for all packages, edit the global-config.gradle file in ./scripts/global-config.gradle + final globalConfigPath = joinAll( + [ + Directory.current.path, + 'scripts', + 'global-config.gradle', + ], + ); + + // Define files using paths + final globalConfig = File(globalConfigPath); + + // Check if the files exist + if (!globalConfig.existsSync()) { + throw Exception( + 'global_config.gradle file not found in the expected location.', + ); + } + + for (final package in workspace.filteredPackages.values) { + switch (package.name) { + case 'cloud_firestore': + case 'cloud_functions': + case 'firebase_analytics': + case 'firebase_app_check': + case 'firebase_app_installations': + case 'firebase_core': + case 'firebase_crashlytics': + case 'firebase_database': + case 'firebase_dynamic_links': + case 'firebase_in_app_messaging': + case 'firebase_messaging': + case 'firebase_ml_model_downloader': + case 'firebase_performance': + case 'firebase_remote_config': + case 'firebase_storage': + final localConfigGradleFilePath = '${package.path}/android/local-config.gradle'; + + final copiedConfig = await globalConfig.copy( + localConfigGradleFilePath, + ); + print('File copied to: ${copiedConfig.path}'); + + final gradlePropertiesFilePath = '${package.path}/example/android/gradle.properties'; + extractAndWriteProperty( + globalConfig: globalConfig, + gradlePropertiesFile: File(gradlePropertiesFilePath), + ); + print('successfully wrote property to $gradlePropertiesFilePath'); + break; + case 'firebase_data_connect': + // Only has gradle in the example application. + final localConfigGradleFilePath = '${package.path}/example/android/app/local-config.gradle'; + final copiedConfig = await globalConfig.copy( + localConfigGradleFilePath, + ); + // ignore: avoid_print + print('File copied to: ${copiedConfig.path}'); + + final gradlePropertiesFilePath = '${package.path}/example/android/gradle.properties'; + extractAndWriteProperty( + globalConfig: globalConfig, + gradlePropertiesFile: File(gradlePropertiesFilePath), + ); + print('successfully wrote property to $gradlePropertiesFilePath'); + break; + case 'firebase_vertexai': + case 'firebase_ai': + case 'firebase_auth': + // skip these packages, manually update. + break; + } + } +} + +Future getMelosWorkspace() async { + final packageFilters = melos.PackageFilters( + includePrivatePackages: false, + ignore: [ + Glob('*web*'), + Glob('*platform*'), + Glob('*internals*'), + ], + ); + final workspace = await melos.MelosWorkspace.fromConfig( + await melos.MelosWorkspaceConfig.fromWorkspaceRoot(Directory.current), + logger: melos.MelosLogger(logging.Logger.standard()), + packageFilters: packageFilters, + ); + + return workspace; +} + +Future extractAndWriteProperty({ + required File globalConfig, + required File gradlePropertiesFile, +}) async { + + const String propertyName = 'androidGradlePluginVersion'; + if (!await globalConfig.exists()) { + print('Global config file not found: ${globalConfig.path}'); + return; + } + + final globalContent = await globalConfig.readAsString(); + + // Extract the property from the ext block + final regex = RegExp('$propertyName\\s*=\\s*[\'"]?([^\\n\'"]+)[\'"]?'); + final match = regex.firstMatch(globalContent); + + if (match == null) { + print('Property $propertyName not found in global config.'); + return; + } + + final value = match.group(1); + + final lines = await gradlePropertiesFile.exists() + ? await gradlePropertiesFile.readAsLines() + : []; + + bool updated = false; + + final updatedLines = lines.map((line) { + if (line.startsWith('$propertyName=')) { + updated = true; + return '$propertyName=$value'; + } + return line; + }).toList(); + + if (!updated) { + updatedLines.add('$propertyName=$value'); + } + + await gradlePropertiesFile.writeAsString(updatedLines.join('\n')); + + print('Wrote $propertyName=$value to ${gradlePropertiesFile.path}'); +} diff --git a/scripts/global-config.gradle b/scripts/global-config.gradle new file mode 100644 index 000000000000..b8cf843dca09 --- /dev/null +++ b/scripts/global-config.gradle @@ -0,0 +1,7 @@ +ext { + compileSdk=34 + minSdk=21 + targetSdk=34 + javaVersion = JavaVersion.toVersion(17) + androidGradlePluginVersion = '8.2.1' +} \ No newline at end of file diff --git a/tests/android/app/build.gradle b/tests/android/app/build.gradle index 3af574d0809e..eac6780caf65 100644 --- a/tests/android/app/build.gradle +++ b/tests/android/app/build.gradle @@ -31,10 +31,11 @@ android { compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 + coreLibraryDesugaringEnabled true } kotlinOptions { - jvmTarget = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } defaultConfig { @@ -58,3 +59,7 @@ android { flutter { source = "../.." } + +dependencies { + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' +}