plugins { id("com.android.application") id("org.jetbrains.kotlin.android") } android { // El .so nativo exporta Java_com_solarnethub_oasis_OasisActivity_startNodeWithArguments, // asi que la clase puente tiene que vivir en ese paquete para que el simbolo resuelva. // El applicationId si es propio: la app se instala junto a la oficial sin pisarla. namespace = "com.solarnethub.oasis" compileSdk = 35 defaultConfig { applicationId = "net.laenre.oasis" minSdk = 24 targetSdk = 35 // el pipeline los pasa por entorno; a mano valen los de aqui versionCode = (System.getenv("OASIS_VERSION_CODE") ?: "1").toInt() versionName = System.getenv("OASIS_VERSION_NAME") ?: "0.9.5" ndk { abiFilters += listOf("arm64-v8a") } } signingConfigs { create("release") { val ks = System.getenv("OASIS_KEYSTORE") if (ks != null) { storeFile = file(ks) storePassword = System.getenv("OASIS_KEYSTORE_PASS") keyAlias = System.getenv("OASIS_KEY_ALIAS") ?: "oasis" keyPassword = System.getenv("OASIS_KEY_PASS") ?: System.getenv("OASIS_KEYSTORE_PASS") } } } buildTypes { release { isMinifyEnabled = false if (System.getenv("OASIS_KEYSTORE") != null) signingConfig = signingConfigs.getByName("release") } } buildFeatures { buildConfig = true } packaging { jniLibs { // libnode.so son 49 MB: sin comprimir se carga por mmap y arranca mas rapido useLegacyPackaging = false } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } } dependencies { implementation("androidx.appcompat:appcompat:1.7.0") implementation("androidx.core:core-ktx:1.13.1") }