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

Android Studio中Kapt与Ksp无法使用及Gradle引号问题求助

Gradle引号差异&Ksp/Kapt配置问题解决

一、为什么必须用双引号?

你用的是Kotlin DSL格式的Gradle脚本(文件后缀为.gradle.kts),这种语法里单引号仅用于定义单个字符,字符串必须用双引号或三重引号;而多数老教程用的是Groovy脚本(.gradle后缀),Groovy里单双引号都能表示字符串,这就是差异的根源。

二、Ksp配置报错解决

1. 项目级脚本(settings.gradle.kts)配置

Ksp插件必须指定版本号,且版本要与你的Kotlin版本匹配(比如Kotlin 1.9.20对应Ksp 1.9.20-1.0.14),示例配置:

pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
    plugins {
        id("com.google.devtools.ksp") version "1.9.20-1.0.14" // 替换为与你Kotlin对应的版本
    }
}

如果是旧版Gradle结构,可在项目根目录build.gradle.kts的plugins块声明:

plugins {
    id("com.android.application") version "8.2.0" apply false
    id("org.jetbrains.kotlin.android") version "1.9.20" apply false
    id("com.google.devtools.ksp") version "1.9.20-1.0.14" apply false
}

2. App模块脚本(app/build.gradle.kts)配置

先在plugins块引入Ksp,再添加依赖:

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    id("com.google.devtools.ksp") // 无需重复写版本,项目级已声明
}

dependencies {
    // 其他依赖...
    implementation("androidx.room:room-runtime:2.5.0")
    ksp("androidx.room:room-compiler:2.5.0") // 不再提示"Unresolved reference"
}

三、Kapt配置报错解决

因使用Kotlin DSL,不能用Groovy写法,按以下修改:

1. 引入Kapt插件

在app模块的plugins块添加:

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    id("kotlin-kapt") // 替代原Groovy的apply plugin写法
}

2. 添加Kapt依赖

将原Groovy格式的依赖改为Kotlin DSL写法:

dependencies {
    // 其他依赖...
    implementation("androidx.room:room-runtime:2.4.2")
    kapt("androidx.room:room-compiler:2.4.2") // 用括号包裹,而非空格分隔
}

内容的提问来源于stack exchange,提问作者Gothman 11

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 17:57:17