import java.util.Properties import java.io.FileInputStream plugins { id("com.android.application") id("kotlin-android") id("dev.flutter.flutter-gradle-plugin") id("com.google.gms.google-services") id("com.huawei.agconnect") } val localProperties = Properties() val localPropertiesFile = rootProject.file("local.properties") if (localPropertiesFile.exists()) { localProperties.load(FileInputStream(localPropertiesFile)) } val flutterVersionCode = localProperties.getProperty("flutter.versionCode") ?: "1" val flutterVersionName = localProperties.getProperty("flutter.versionName") ?: "1.0" val keystoreProperties = Properties() val keystorePropertiesFile = rootProject.file("key.properties") if (keystorePropertiesFile.exists()) { keystoreProperties.load(FileInputStream(keystorePropertiesFile)) } android { namespace = "com.example.test_sa" ndkVersion = "28.2.13676358" compileSdk = 36 compileOptions { isCoreLibraryDesugaringEnabled = true sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } defaultConfig { applicationId = "com.hmg.atoms" minSdk = flutter.minSdkVersion targetSdk = 36 versionCode = flutterVersionCode.toInt() versionName = flutterVersionName // 16KB page size support - ensure all ABIs are included ndk { abiFilters.addAll(listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")) } // Additional 16KB page size optimization manifestPlaceholders["16kb_page_size_compatible"] = "true" } signingConfigs { create("release") { keyAlias = keystoreProperties["keyAlias"] as String? keyPassword = keystoreProperties["keyPassword"] as String? storeFile = keystoreProperties["storeFile"]?.let { file(it as String) } storePassword = keystoreProperties["storePassword"] as String? } } buildTypes { debug { signingConfig = signingConfigs.getByName("debug") } release { isMinifyEnabled = true isShrinkResources = true signingConfig = signingConfigs.getByName("release") } } // 16KB page size support for Google Play Store (August 2025 requirement) // AGP 8.1+ uses packaging.jniLibs instead of the deprecated gradle.properties flag packaging { jniLibs { useLegacyPackaging = false // Ensure proper extraction and alignment for 16KB page size excludes.add("**/libunity.so") } resources { excludes += setOf( "META-INF/DEPENDENCIES", "META-INF/LICENSE", "META-INF/LICENSE.txt", "META-INF/license.txt", "META-INF/NOTICE", "META-INF/NOTICE.txt", "META-INF/notice.txt", "META-INF/*.kotlin_module" ) } } } flutter { source = "../.." } dependencies { implementation("com.huawei.agconnect:agconnect-core:1.5.2.300") implementation("com.huawei.hms:push:6.7.0.300") coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.3") }