You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudsolutions-atoms/android/app/build.gradle.kts

111 lines
3.2 KiB
Kotlin

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")
}