import java.io.FileInputStream import java.util.Properties 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") } val keystorePropertiesFile = rootProject.file("key.properties") val keystoreProperties = Properties() if (keystorePropertiesFile.exists()) { keystoreProperties.load(FileInputStream(keystorePropertiesFile)) } android { namespace = "app.xixi.nomo" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = JavaVersion.VERSION_11.toString() } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "app.xixi.nomo" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName multiDexEnabled = true manifestPlaceholders.put("CHANNEL", "universal") ndk { abiFilters.add("armeabi-v7a") abiFilters.add("arm64-v8a") } } flavorDimensions += "env" productFlavors { create("googleDev") { dimension = "env" // applicationIdSuffix = ".dev" resValue("string", "app_name", "NOMO Dev") manifestPlaceholders["CHANNEL"] = "google" } create("universalDev") { dimension = "env" // applicationIdSuffix = ".dev" resValue("string", "app_name", "NOMO Dev") manifestPlaceholders["CHANNEL"] = "universal" } create("googleProd") { dimension = "env" manifestPlaceholders["CHANNEL"] = "google" } create("universalProd") { dimension = "env" manifestPlaceholders["CHANNEL"] = "universal" } } sourceSets { getByName("main") { jniLibs.srcDirs("libs") } } packaging { jniLibs { useLegacyPackaging = true keepDebugSymbols += "**/*.so" } resources { excludes += ":META-INF/LICENSE" excludes += ":META-INF/LICENSE.md" excludes += ":META-INF/NOTICE" excludes += setOf( "META-INF/DebugProbesKt.bin", "lib/x86/*", "lib/x86_64/*" ) } } signingConfigs { create("release") { keyAlias = keystoreProperties["keyAlias"] as String? keyPassword = keystoreProperties["keyPassword"] as String? storeFile = keystoreProperties["storeFile"]?.let { file(it) } storePassword = keystoreProperties["storePassword"] as String? } } buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig = signingConfigs.getByName("release") isShrinkResources = false isMinifyEnabled = false } debug { signingConfig = signingConfigs.getByName("release") } } } flutter { source = "../.." } dependencies { // Core Libraries implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.aar", "*.jar")))) implementation("com.google.code.gson:gson:2.13.2") implementation("androidx.lifecycle:lifecycle-service:2.8.4") implementation("commons-io:commons-io:2.6") }