android_multiviewwer/app/build.gradle.kts
2025-09-07 23:14:03 +09:00

190 lines
7.2 KiB
Plaintext

import java.text.SimpleDateFormat
import java.util.Date
plugins {
id ("com.android.application")
id ("kotlin-android")
id ("io.realm.kotlin")
id ("kotlin-kapt")
}
android {
namespace = "bums.lunatic.launcher"
compileSdk = 35
defaultConfig {
applicationId = "bums.lunatic.launcher"
minSdk = 26
versionCode = 38
versionName = "2.8.2"
multiDexEnabled = true
ndk {
abiFilters += listOf("arm64-v8a") // 필요한 ABI만 빌드하도록 필터링
}
externalNativeBuild {
cmake {
cppFlags += "-std=c++17"
arguments += "-DANDROID_STL=c++_shared"
}
}
// 이 부분을 추가하여 prefab 기능을 활성화합니다.
buildFeatures {
prefab = true
}
}
buildTypes {
getByName("debug") {
isMinifyEnabled = false
isShrinkResources = false
isDebuggable = true
// applicationIdSuffix = ".debug"
// versionNameSuffix = "-debug"
buildConfigField("Long","BuildDateTime", "${getDateTime()}L")
resValue ("string", "app_name", "Bums Launcher Debug")
}
getByName("release") {
isMinifyEnabled = true
isShrinkResources = true
buildConfigField("Long","BuildDateTime", "${getDateTime()}L")
proguardFiles (getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
resValue ("string", "app_name", "Bums Launcher")
}
}
externalNativeBuild {
cmake {
path = file("src/main/cpp/CMakeLists.txt")
version = "3.22.1"
}
}
signingConfigs {
getByName("debug") {
storeFile = file("./bs_debug.keystore")
storePassword = "android"
keyAlias = "androiddebugkey"
keyPassword = "android"
}
}
android {
sourceSets["main"].jniLibs.srcDirs("src/main/jniLibs")
}
applicationVariants.all {
if (buildType.name == "release") {
outputs.all {
val output = this as? com.android.build.gradle.internal.api.BaseVariantOutputImpl
if (output?.outputFileName?.endsWith(".apk") == true) {
output.outputFileName = "${defaultConfig.applicationId}_v${defaultConfig.versionName}.apk"
}
}
}
}
buildFeatures {
viewBinding = true
dataBinding = true
buildConfig = true
resValues = true
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
packagingOptions.resources.excludes.add("META-INF/*")
packagingOptions.resources.excludes.add("mozilla/*")
packagingOptions.resources.excludes.add("META-INF/*/*")
kotlinOptions {
jvmTarget = "1.8"
}
ndkVersion = "29.0.13846066 rc3"
// buildToolsVersion = "35.0.1"
packaging {
doNotStrip("**/libaria2c.zip.so")
doNotStrip("**/libffmpeg.zip.so")
doNotStrip("**/libpython.zip.so")
}
}
dependencies {
val kotlinVersion: String? by extra
val realmVersion = "2.0.0"
implementation ("androidx.appcompat:appcompat:1.7.1")
implementation ("androidx.biometric:biometric-ktx:1.2.0-alpha05")
implementation ("androidx.browser:browser:1.8.0")
implementation ("androidx.core:core-ktx:1.15.0")
implementation ("androidx.core:core-splashscreen:1.0.1")
implementation ("androidx.lifecycle:lifecycle-runtime-ktx:2.8.7")
implementation ("com.google.android.material:material:1.12.0")
implementation ("com.ibm.icu:icu4j:77.1")
implementation (kotlin("stdlib", version = "2.0.10"))
implementation ("com.github.cachapa:ExpandableLayout:2.9.2")
implementation ("androidx.work:work-runtime:2.10.0")
implementation ("com.google.code.gson:gson:2.13.1")
implementation ("io.realm.kotlin:library-base:${realmVersion}")
implementation ("org.jsoup:jsoup:1.21.2")
implementation ("org.apache.commons:commons-text:1.14.0")
implementation("com.squareup.okhttp:okhttp:2.7.5")
implementation("com.google.android.gms:play-services-location:21.3.0")
implementation("com.google.android.gms:play-services-tasks:18.3.2")
implementation("com.squareup.retrofit2:retrofit:3.0.0")
implementation("com.squareup.retrofit2:converter-gson:3.0.0")
implementation("com.squareup.retrofit2:converter-scalars:3.0.0")
implementation("androidx.viewpager2:viewpager2:1.1.0")
implementation("com.squareup.picasso:picasso:2.71828")
implementation("com.github.delight-im:Android-AdvancedWebView:v3.2.1")
// implementation(project(":library"))
// implementation(project(":utils"))
implementation( "com.github.bumptech.glide:glide:4.11.0")
implementation ("com.github.bumptech.glide:okhttp3-integration:4.11.0")
// implementation("org.mozilla.geckoview:geckoview:139.0.20250523173407")
// https://mvnrepository.com/artifact/org.mozilla.geckoview/geckoview
implementation("org.mozilla.geckoview:geckoview:139.0.20250523173407")
implementation("com.vladsch.flexmark:flexmark-all:0.64.8")
// implementation 'com.vladsch.flexmark:flexmark-all:0.64.8'
// implementation("org.opencv:opencv-android:4.11.0")
// build.gradle에 추가
// implementation ("com.github.aeonSolutions:FloatingActionButtonMenuDrag:1.1")
implementation("io.github.junkfood02.youtubedl-android:library:0.17.4")
implementation("io.github.junkfood02.youtubedl-android:ffmpeg:0.17.4")
implementation("io.github.junkfood02.youtubedl-android:aria2c:0.17.4")
implementation ("com.squareup.okhttp3:logging-interceptor:4.11.0")
// implementation ("com.arthenica:ffmpeg-kit-full:4.5.LTS")
// implementation ("com.arthenica:ffmpeg-kit-full:6.0-2")
// implementation(files("libs/ffmpeg-kit-full-6.0-2.LTS.aar"))
// implementation("com.arthenica:ffmpeg-kit-full-gpl:5.1")
implementation ("androidx.media:media:1.7.0")
// implementation(project(":sdk"))
// implementation ("me.everything:providers-android:1.0.1")
// implementation ("me.everything:providers-core:1.0.1")
// implementation ("androidx.window:window:1.0.0")
// implementation("io.github.vaneproject:hanguleditor:1.0.0")
constraints {
// ⚠️ 이 버전을 프로젝트 루트의 build.gradle.kts에 정의된 kotlinVersion 값과 정확히 일치시키세요.
val targetKotlinVersion = "2.0.20"
implementation("org.jetbrains.kotlin:kotlin-stdlib") {
version { strictly(targetKotlinVersion) }
// reason = "Align all Kotlin stdlib versions with the compiler plugin version"
}
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") {
version { strictly(targetKotlinVersion) }
// reason = "Align all Kotlin stdlib versions with the compiler plugin version"
}
implementation("org.jetbrains.kotlin:kotlin-stdlib-common") {
version { strictly(targetKotlinVersion) }
// reason = "Align all Kotlin stdlib versions with the compiler plugin version"
}
}
}
fun getDateTime() = SimpleDateFormat("yyyyMMddHHmm").format(Date()).toLong()