Gradle 8.3.2项目kaptGenerateStubsDebugKotlin任务构建错误求助
问题描述
在使用Gradle 8.3.2的Android项目中,引入kotlin-kapt、Room与协程依赖后,执行:app:kaptGenerateStubsDebugKotlin任务时触发错误:Error while evaluating property 'ifKaptClasspathIsPresent'。
已尝试的排查动作
- 将项目JVM版本切换为17、18
- 修改kapt的
jvmTarget为1.8 - 执行
./gradlew --warning-mode=all获取详细输出,排查到Kotlin Extension Indexer相关提及,但未解决问题
解决方案建议
1. 统一版本兼容性(核心修复)
Gradle、Kotlin、AGP(Android Gradle Plugin)、Room、协程的版本必须严格匹配,Gradle 8.3.2对应以下兼容版本组合:
- Kotlin:1.9.20
- AGP:8.1.4(AGP 8.1.x适配Gradle 8.0-8.3)
- Room:2.5.2(与Kotlin 1.9.x兼容)
- 协程:1.7.3(与Kotlin 1.9.x兼容)
2. 统一JVM配置,避免版本混用
不要同时设置不同的JVM版本,将项目编译环境、Kotlin、kapt的JVM版本统一为17(Gradle 8.x推荐使用JDK 17),修改项目根目录的build.gradle.kts(或.gradle):
plugins { id("com.android.application") version "8.1.4" id("org.jetbrains.kotlin.android") version "1.9.20" id("kotlin-kapt") } android { compileSdk = 34 defaultConfig { minSdk = 24 targetSdk = 34 } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } kapt { javacOptions { option("-source", "17") option("-target", "17") } } }
3. 同步依赖版本
修改app模块的build.gradle.kts(或.gradle)中的依赖:
dependencies { // 协程依赖 implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3") // Room依赖 implementation("androidx.room:room-runtime:2.5.2") kapt("androidx.room:room-compiler:2.5.2") implementation("androidx.room:room-ktx:2.5.2") }
4. 清理构建缓存并重新构建
执行以下命令彻底清理缓存并刷新依赖:
./gradlew clean build --refresh-dependencies
5. 禁用Kotlin Extension Indexer(可选)
如果之前排查到该组件相关问题,在项目根目录的gradle.properties中添加以下配置:
kotlin.experimental.indexing=false
内容的提问来源于stack exchange,提问作者user24633806
相关产品推荐
相关产品推荐

