plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) // 1. 加入 Hilt 與 KSP 插件 alias(libs.plugins.ksp) alias(libs.plugins.hilt) } android { namespace = "com.example.login_v3" compileSdk = 36 defaultConfig { applicationId = "com.example.login_v3" minSdk = 34 targetSdk = 36 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } buildFeatures { compose = true } } 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.compose.ui) implementation(libs.androidx.compose.ui.graphics) implementation(libs.androidx.compose.ui.tooling.preview) implementation(libs.androidx.compose.material3) implementation(libs.volley) implementation(libs.androidx.compose.foundation) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.compose.ui.test.junit4) debugImplementation(libs.androidx.compose.ui.tooling) debugImplementation(libs.androidx.compose.ui.test.manifest) implementation("androidx.compose.material:material-icons-extended:") implementation("io.coil-kt:coil-compose:2.5.0") implementation("io.coil-kt:coil-svg:2.5.0") implementation("androidx.core:core-splashscreen:1.2.0") implementation("com.google.android.material:material:1.10.0") implementation("androidx.compose.material3:material3:1.2.0") implementation(libs.androidx.compose.animation) implementation(libs.androidx.navigation.compose) //retrofit implementation("com.squareup.retrofit2:retrofit:2.11.0") implementation("com.squareup.retrofit2:converter-moshi:2.11.0") //json stuff implementation("com.squareup.moshi:moshi-kotlin:1.15.0") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0") //加入 Hilt 核心與編譯器 implementation(libs.hilt.android) ksp(libs.hilt.compiler) // 使用 ksp 取代 kapt,效能更好 //加入 Compose 專用的 Hilt 導覽支援 (這對導覽注入非常重要) implementation(libs.hilt.navigation.compose) implementation("androidx.datastore:datastore-preferences:1.2.1") //emoji pack val emoji2Version = "1.5.0" // 請根據你當前環境選擇最新穩定版 implementation("androidx.emoji2:emoji2:$emoji2Version") implementation("androidx.emoji2:emoji2-bundled:$emoji2Version") // 自帶字型包 val roomVersion = "2.6.1" // 可以使用目前穩定的 2.6.1 或最新版本 implementation("androidx.room:room-runtime:$roomVersion") implementation("androidx.room:room-ktx:$roomVersion") // 支援 Flow 必須要加這行 ksp("androidx.room:room-compiler:$roomVersion") // 使用 KSP 來編譯 Room 註解 //video player val media3Version = "1.5.1" // 建議統一宣告版本,避免版本衝突 implementation("androidx.media3:media3-exoplayer:$media3Version") implementation("androidx.media3:media3-ui:$media3Version") //video decode implementation("io.coil-kt:coil-video:2.6.0") // 依據你專案中使用的 coil 版本(例如 2.x.x),補上 gif 支援庫 implementation("io.coil-kt:coil-gif:2.6.0") // 版本號請與你現有的 coil 保持一致 }