You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle 8兼容的Hilt版本及JVM目标版本冲突解决咨询

解决Android Compose+Hilt编译时JVM版本不兼容问题

问题现象

添加Hilt依赖后编译失败,错误信息如下:

> Task :app:kaptGenerateStubsDebugKotlin FAILED
Execution failed for task ':app:kaptGenerateStubsDebugKotlin'.
> 'compileDebugJavaWithJavac' task (current target is 1.8) and 'kaptGenerateStubsDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.
  Consider using JVM toolchain

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

项目与环境配置

  • Android Gradle Plugin: 8.1.1
  • Gradle版本: 8.0
  • Kotlin版本: 1.8.0
  • Android Studio版本: Android Studio Giraffe | 2022.3.1 Patch 1
  • Gradle JDK: Android Studio默认的Jetbrains Runtime 17.0.6

解决方案

方案1:统一JVM目标版本(推荐)

直接在模块的build.gradle.kts中统一配置Java和Kotlin的JVM目标版本,避免任务间版本冲突:

android {
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = "17"
    }
}

也可以使用Gradle工具链统一管理,这是官方推荐的标准化方式:

android {
    compileOptions {
        toolchain {
            languageVersion.set(JavaLanguageVersion.of(17))
        }
    }
    kotlinOptions {
        jvmTarget = "17"
    }
}

方案2:修改Kapt任务的JVM目标(临时方案)

你找到的临时方案是可行的,但仅针对Kapt任务单独修改,不如统一配置彻底:

tasks {
    withType(org.jetbrains.kotlin.gradle.tasks.KaptGenerateStubs::class.java).configureEach {
        kotlinOptions {
            jvmTarget = "1.8"
        }
    }
}

Gradle 8兼容的Hilt版本

从Hilt 2.44版本开始已全面支持Gradle 8.x,后续的稳定版本如2.47、2.48等也都兼容Gradle 8,建议使用最新稳定版以获得更完善的兼容性和问题修复。

内容的提问来源于stack exchange,提问作者Carlos Leonardo Camilo Vargas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:56:23