當您在一個原本純 Java 或沒有啟用 Kotlin 支援的 Android 專案中加入 .kt 檔案時,編譯器可能會因為缺少必要的設定或相依性而報錯。
您遇到的錯誤訊息:
“Starting in Kotlin 2.0, the Compose Compiler Gradle plugin is required when compose is enabled.”
這表示編譯器誤以為您的專案正在使用 Jetpack Compose (Android 的現代 UI 工具包),但缺少了 Compose Compiler 插件。
google 官方文件:
https://developer.android.com/develop/ui/compose/compiler?hl=zh-tw
有看沒有懂…
🛠️ 解決方案:檢查並新增 Kotlin 支援
解決這個問題的關鍵是確保您的專案正確地配置了 Kotlin Android Plugin 和 Kotlin Standard Library。
步驟 1: 檢查 Project-level 的 build.gradle (或 settings.gradle.kts)
確保您的專案級別 (Project-level) 的設定檔案中,已經加入了 Kotlin Gradle Plugin 的 Classpath。
在 build.gradle (Project 級別):
buildscript {
ext.kotlin_version = '1.9.22' // 根據您的專案需求使用最新或穩定版本
repositories {
google()
mavenCentral()
}
dependencies {
// ... 其他 dependencies
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // <--- 確保有這行
}
}
- 注意: 如果您使用的是新的 Gradle 設定方式 (Kotlin DSL),則應在
settings.gradle.kts中確保有這個 Plugin。
步驟 2: 編輯 Module-level 的 build.gradle (通常是 app/build.gradle)
這是最重要的步驟,您必須在編寫 Kotlin 程式碼的模組 (Module) 中應用 (apply) Kotlin 插件並新增必要的相依性。
在 app/build.gradle (Module 級別):
- 套用 Plugin (Apply Plugin): 在檔案頂部,新增
kotlin-android插件。// 確保這裡有這兩行 plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' // <--- 確保有這行 // 如果您的專案是純 Java 且您剛剛加入 kotlin 檔案,您可能會需要將: // apply plugin: 'com.android.application' // 改為新的 `plugins` 區塊並加入 'org.jetbrains.kotlin.android' } - 新增 Kotlin 標準庫 (Standard Library): 在
dependencies區塊中,新增 Kotlin 標準庫。dependencies { // ... 其他 dependencies// 新增 Kotlin 標準庫相依性 implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" // <--- 確保有這行 // 如果您使用 Kotlin 與 Activity 或 Fragment 交互,建議也加入 KTX implementation "androidx.core:core-ktx:1.12.0" // 確保您使用的版本是最新的}
步驟 3: 移除或禁用 Compose 相關設定 (如果沒有使用 Compose)
如果您的專案確定沒有使用 Jetpack Compose,但錯誤訊息仍然出現,這可能是因為您在 app/build.gradle 中意外啟用了 Compose 設定。
請檢查 android 區塊:
- 尋找以下設定,如果存在且您沒有使用 Compose,請將其移除或註解掉:
gradle android { // ... buildFeatures { // 這個可能會導致錯誤,如果專案沒有使用 Compose UI compose true // <--- 移除或改成 false } // ... }
🚀 最終動作
完成上述步驟後,請在 Android Studio 中點擊 Sync Now (或 Gradle 檔案修改後自動出現的同步提示),讓 Gradle 下載並應用新的設定。這樣應該就能解決編譯器報錯,並允許 Java 程式碼正確地與您的 .kt 檔案(例如 BaseActivity.kt)互動。