import com.android.build.gradle.internal.api.BaseVariantOutputImpl import java.io.FileInputStream import java.text.SimpleDateFormat import java.util.Date import java.util.Locale import java.util.Properties import java.util.TimeZone plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) } val versionMajor = 1 val versionMinor = 0 val versionPatch = 13 val vcode = "${versionMajor}".toInt() * 1000000 + "${versionMinor}".toInt() * 1000 + "${versionPatch}".toInt() android { namespace = "com.safeluck.floatwindow" compileSdk = 35 val keystorePropertiesFile = rootProject.file("keystore.properties") val keystoreProperties = Properties() keystoreProperties.load(FileInputStream(keystorePropertiesFile)) defaultConfig { applicationId = "com.safeluck.floatwindow" minSdk = 24 targetSdk = 35 versionCode = vcode versionName = "${versionMajor}.${versionMinor}.${versionPatch}.${releaseTime()}" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" ndk { abiFilters += listOf("arm64-v8a", "armeabi-v7a") } } applicationVariants.all { val variant = this outputs.all { val output = this as BaseVariantOutputImpl val vName = variant.versionName val vCode = variant.versionCode // 自己按需要拼 output.outputFileName = "anyunVideo_v${vName}.apk" } } buildFeatures{ aidl =true } signingConfigs { create("release") { keyPassword = keystoreProperties.getProperty("keyPassword") keyAlias = keystoreProperties.getProperty("keyAlias") storeFile = file(keystoreProperties.getProperty("storeFile") ?: "") storePassword = keystoreProperties.getProperty("storePassword") } getByName("debug") { keyPassword = keystoreProperties.getProperty("keyPassword") keyAlias = keystoreProperties.getProperty("keyAlias") storeFile = file(keystoreProperties.getProperty("storeFile") ?: "") storePassword = keystoreProperties.getProperty("storePassword") } } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) signingConfig = signingConfigs.getByName("release") } debug { signingConfig = signingConfigs.getByName("debug") } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" } buildFeatures { compose = true } packaging { jniLibs { useLegacyPackaging = false } resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } } } dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.activity.compose) implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.ui) implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) implementation(libs.androidx.material3) implementation(project(":usbcameralib")) implementation(fileTree(mapOf( "dir" to "libs", "include" to listOf("*.aar", "*.jar") ))) implementation(libs.timber) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.ui.test.junit4) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) } fun releaseTime():String{ val sdf = SimpleDateFormat("YYYYMMdd_HHmmss", Locale.CHINA) sdf.timeZone = TimeZone.getTimeZone("GMT+8") return sdf.format(Date()) }