/* * Copyright 2025 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ plugins { alias(libs.plugins.android.application) // Note: set apply to true to enable google-services (requires google-services.json). alias(libs.plugins.google.services) apply false alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) alias(libs.plugins.kotlin.serialization) alias(libs.plugins.protobuf) alias(libs.plugins.hilt.application) alias(libs.plugins.oss.licenses) kotlin("kapt") } android { // AGP 8+ 에서 assets 압축 금지 // androidResources { noCompress += "tflite" } namespace = "com.google.ai.edge.gallery" compileSdk = 35 defaultConfig { applicationId = "com.google.aiedge.gallery" minSdk = 31 targetSdk = 35 versionCode = 13 versionName = "1.0.7" // Needed for HuggingFace auth workflows. // Use the scheme of the "Redirect URLs" in HuggingFace app. manifestPlaceholders["appAuthRedirectScheme"] = "REPLACE_WITH_YOUR_REDIRECT_SCHEME_IN_HUGGINGFACE_APP" manifestPlaceholders["applicationName"] = "com.google.ai.edge.gallery.GalleryApplication" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" // for RAG // assets 경로 (없으면 추가) sourceSets["main"].assets.srcDirs("src/main/assets") } buildTypes { release { isMinifyEnabled = false proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") signingConfig = signingConfigs.getByName("debug") } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" freeCompilerArgs += "-Xcontext-receivers" } buildFeatures { compose = true buildConfig = true } // 고연 androidResources { // 💡 TFLite 모델과 NPY 파일이 압축되지 않도록 추가합니다. noCompress += listOf("tflite", "npy", "bin") } } 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(libs.androidx.compose.navigation) implementation(libs.kotlinx.serialization.json) implementation(libs.material.icon.extended) implementation(libs.androidx.work.runtime) implementation(libs.androidx.datastore) implementation(libs.com.google.code.gson) implementation(libs.androidx.lifecycle.process) implementation(libs.androidx.security.crypto) implementation(libs.mediapipe.tasks.text) implementation(libs.mediapipe.tasks.genai) // implementation("org.tensorflow:tensorflow-lite:2.14.0") // implementation("org.tensorflow:tensorflow-lite-support:0.4.4") implementation(libs.commonmark) implementation(libs.richtext) implementation(libs.tflite) implementation(libs.tflite.gpu) implementation(libs.tflite.support) implementation(libs.camerax.core) implementation(libs.camerax.camera2) implementation(libs.camerax.lifecycle) implementation(libs.camerax.view) implementation(libs.openid.appauth) implementation(libs.androidx.splashscreen) implementation(libs.protobuf.javalite) implementation(libs.hilt.android) implementation(libs.hilt.navigation.compose) implementation(libs.play.services.oss.licenses) implementation(platform(libs.firebase.bom)) implementation(libs.firebase.analytics) implementation(libs.androidx.exifinterface) kapt(libs.hilt.android.compiler) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.ui.test.junit4) androidTestImplementation(libs.hilt.android.testing) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) // AI Edge RAG SDK (온디바이스 임베더/체인 등) implementation("com.google.ai.edge.localagents:localagents-rag:0.1.0") implementation("com.google.mediapipe:tasks-genai:0.10.22") implementation("com.google.mediapipe:tasks-vision:0.10.26.1") implementation("org.tensorflow:tensorflow-lite:2.14.0") implementation("org.tensorflow:tensorflow-lite-gpu:2.14.0") implementation("org.tensorflow:tensorflow-lite-support:0.4.4") //교연 implementation("androidx.exifinterface:exifinterface:1.3.7") implementation("com.google.code.gson:gson:2.10.1") // Gson (JSON 파싱용) //for tts implementation("com.google.mlkit:text-recognition-korean:16.0.1") //석준 implementation(project(":unityLibrary")) // 2. fileTree 부분도 Kotlin 문법에 맞게 수정 implementation(fileTree(File(rootDir, "unityLibrary/libs")) { include("*.jar") }) // for chat panel ani implementation("androidx.compose.animation:animation-graphics:") } protobuf { protoc { artifact = "com.google.protobuf:protoc:4.26.1" } generateProtoTasks { all().forEach { it.plugins { create("java") { option("lite") } } } } }