plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' } android.buildFeatures.buildConfig true android { namespace 'io.github.chinosk.gakumas.localify' compileSdk 34 ndkVersion "26.3.11579264" defaultConfig { applicationId "io.github.chinosk.gakumas.localify" minSdk 29 targetSdk 34 versionCode 2 versionName "Dev" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary true } externalNativeBuild { cmake { cppFlags '' } } ndk { abiFilters 'arm64-v8a' } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' buildConfigField "boolean", "ENABLE_LOG", "true" } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } buildFeatures { compose true prefab true } composeOptions { kotlinCompilerExtensionVersion '1.5.1' } externalNativeBuild { cmake { path file('src/main/cpp/CMakeLists.txt') version '3.22.1' } } packagingOptions { resources { excludes.add('/META-INF/{AL2.0,LGPL2.1}') } jniLibs { pickFirsts += ['**/libxdl.so', '**/libshadowhook.so'] } } dataBinding { enable true } applicationVariants.configureEach { variant -> variant.mergeAssetsProvider.configure { mergeAssetsTask -> mergeAssetsTask.doLast { delete(fileTree(dir: mergeAssetsTask.outputDir, includes: ['gakumas-local/scripts/**', 'gakumas-local/README.md'])) } } } } dependencies { implementation 'androidx.core:core-ktx:1.13.1' implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.2' implementation platform('androidx.compose:compose-bom:2024.06.00') implementation 'androidx.compose.material3:material3' implementation 'com.google.android.material:material:1.12.0' implementation 'io.github.hexhacking:xdl:2.1.1' implementation 'com.bytedance.android:shadowhook:1.0.9' compileOnly 'de.robv.android.xposed:api:82' implementation "org.jetbrains.kotlin:kotlin-reflect:1.9.20" implementation 'com.google.code.gson:gson:2.11.0' }