plugins { id("com.android.application") // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id("dev.flutter.flutter-gradle-plugin") } android { namespace = "it.nuvolari.app" // SDK levels are pinned rather than inherited from `flutter.*` so that upgrading // Flutter cannot silently move targetSdk. Google Play requires API 36 as of // 2026-08-31, and that requirement is a release blocker, not a default. compileSdk = 36 ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } defaultConfig { applicationId = "it.nuvolari.app" // minSdk 24 is the highest floor imposed by the planned dependencies: // maplibre_gl needs 21, google_mobile_ads and firebase_messaging need 23. minSdk = 24 targetSdk = 36 // Uses the version code from pubspec.yaml. When using split APKs, 1000 * ABI_VERSION // is added automatically by Flutter. (https://developer.android.com/studio/build/configure-apk-splits#configure-APK-versions) // You can force using the value of versionCode by specifying the `-P force-version-code-ignoring-abi=true` // flag during build. versionCode = flutter.versionCode versionName = flutter.versionName } buildTypes { release { // Signed with the debug key so `flutter run --release` works during // development. The real signing config is wired up in milestone 9 and // reads from key.properties, which is git-ignored. signingConfig = signingConfigs.getByName("debug") } } } kotlin { compilerOptions { jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 } } flutter { source = "../.." }