import org.jetbrains.kotlin.cli.jvm.main plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("com.google.gms.google-services") id("com.google.firebase.crashlytics") } android { namespace = "com.vpn.fastestvpnservice" compileSdk = 34 defaultConfig { applicationId = "com.vpn.fastestvpnservice" minSdk = 21 targetSdk = 34 versionCode = 329 versionName = "3.2.9" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" ndk { abiFilters.add("arm64-v8a") abiFilters.add("armeabi-v7a") abiFilters.add("x86") abiFilters.add("x86_64") } vectorDrawables { useSupportLibrary = true } // multiDexEnabled = true } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } debug { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } packagingOptions { jniLibs { useLegacyPackaging = true } } compileOptions { isCoreLibraryDesugaringEnabled = true sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } buildFeatures { compose = true viewBinding = true } dataBinding { enable = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.1" } packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } } sourceSets { getByName("main") { aidl { srcDirs("src/main/aidl") } } } lintOptions { disable("MissingTranslation") } buildToolsVersion = "30.0.2" ndkVersion = "19.2.5345600" } dependencies { implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar")))) implementation("androidx.core:core-ktx:1.12.0") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0") implementation("androidx.activity:activity-compose:1.8.2") implementation("androidx.fragment:fragment-ktx:1.6.2") implementation("androidx.activity:activity-ktx:1.8.2") implementation(platform("androidx.compose:compose-bom:2023.08.00")) implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-graphics") implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.compose.material3:material3:1.2.0") implementation("androidx.compose.material:material:1.6.1") implementation("androidx.navigation:navigation-compose:2.7.7") implementation("androidx.compose.material:material-icons-extended:1.6.1") implementation("androidx.compose.ui:ui-text-google-fonts:1.6.1") implementation("androidx.compose.foundation:foundation:1.6.3") // Retrofit implementation("com.squareup.retrofit2:retrofit:2.9.0") implementation("com.squareup.retrofit2:converter-gson:2.9.0") implementation("com.squareup.okhttp3:logging-interceptor:4.9.0") // Coroutines implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1") implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") implementation("androidx.compose.runtime:runtime-livedata:1.6.1") implementation("com.wireguard.android:tunnel:1.0.20210211") implementation("androidx.navigation:navigation-fragment:2.7.7") implementation("androidx.appcompat:appcompat:1.6.1") implementation("com.google.android.material:material:1.11.0") implementation("com.google.accompanist:accompanist-pager-indicators:0.30.1") // Ping implementation("com.github.stealthcopter:AndroidNetworkTools:0.4.5.3") // Billing implementation("com.android.billingclient:billing:6.1.0") implementation("io.coil-kt:coil-compose:1.3.1") implementation("com.google.accompanist:accompanist-drawablepainter:0.34.0") implementation("com.google.firebase:firebase-crashlytics:18.6.2") implementation("com.google.firebase:firebase-messaging:23.4.1") implementation("com.google.firebase:firebase-analytics:21.5.1") //16.0.6 // implementation("com.firebase:firebase-jobdispatcher:0.8.5") implementation("androidx.constraintlayout:constraintlayout-compose:1.0.1") implementation("com.google.zxing:core:3.4.1") implementation("com.journeyapps:zxing-android-embedded:3.6.0") // implementation("androidmads.library.qrgenerator:QRGenerator:1.0.3") // android view implementation("androidx.constraintlayout:constraintlayout:2.0.4") implementation("androidx.activity:activity:1.8.0") // implementation("com.google.firebase:firebase-database-ktx:21.0.0") val leanback_version = "1.0.0" implementation("androidx.leanback:leanback:$leanback_version") implementation("androidx.leanback:leanback-preference:$leanback_version") implementation("com.skyfishjy.ripplebackground:library:1.0.1") implementation("androidx.navigation:navigation-fragment:2.3.0") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.5") implementation("com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.44") implementation("androidx.recyclerview:recyclerview:1.1.0") coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.1.5") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") androidTestImplementation(platform("androidx.compose:compose-bom:2023.08.00")) androidTestImplementation("androidx.compose.ui:ui-test-junit4") debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.compose.ui:ui-test-manifest") // TV implementation("androidx.tv:tv-foundation:1.0.0-alpha10") implementation("androidx.tv:tv-material:1.0.0-beta01") implementation ("com.google.firebase:firebase-analytics-ktx:22.0.2") implementation("com.google.firebase:firebase-database:20.0.6") //strongswan android{ sourceSets { getByName("main") { jni.srcDirs(emptyList()) jniLibs.srcDirs("src/main/libs") } } } tasks.register("buildNative") { workingDir = file("src/main/jni") commandLine(android.ndkDirectory.absolutePath + "/ndk-build", "-j", Runtime.getRuntime().availableProcessors().toString()) } tasks.register("cleanNative") { workingDir = file("src/main/jni") commandLine(android.ndkDirectory.absolutePath + "/ndk-build", "clean") } tasks.withType { dependsOn("buildNative") options.compilerArgs.addAll(listOf("-Xlint:unchecked", "-Xlint:deprecation")) } tasks.getByName("clean").dependsOn("cleanNative") }