在舊的 .java 專案加入 .kt 流程

當您在一個原本純 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 PluginKotlin 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 級別):

  1. 套用 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' }
  2. 新增 Kotlin 標準庫 (Standard Library):dependencies 區塊中,新增 Kotlin 標準庫。 dependencies { // ... 其他 dependencies// 新增 Kotlin 標準庫相依性 implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" // &lt;--- 確保有這行 // 如果您使用 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)互動。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *