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

使用Realm与Kotlin构建Android应用时:app:kaptGenerateStubsDebugKotlin任务失败

解决Kotlin Android集成Realm时构建失败(kaptGenerateStubsDebugKotlin报错)

我之前也碰到过类似的构建问题,结合你给出的堆栈跟踪,核心错误是java.lang.ClassNotFoundException: com.sun.tools.javac.util.Context——这个类属于JDK的tools.jar,说明你的构建环境可能在使用JRE而非完整JDK,再加上Realm与Kapt的配置可能存在疏漏。试试下面的解决方案:

1. 确保Gradle使用完整JDK而非JRE

  • 打开Android Studio,进入File > Project Structure > SDK Location,检查JDK Location是否指向完整的JDK目录(比如C:\Program Files\Java\jdk1.8.0_291),而不是JRE目录。
  • 或者直接在项目根目录的gradle.properties文件中添加JDK路径配置:
    org.gradle.java.home=C:\\Program Files\\Java\\jdk1.8.0_291
    
    (替换成你本地实际的JDK路径)

2. 修正Realm与Kapt的Gradle配置

项目根目录build.gradle:

buildscript {
    ext.kotlin_version = "1.5.31" // 请使用与Realm兼容的Kotlin版本
    ext.realm_version = "10.11.0"
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.0.4"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "io.realm:realm-gradle-plugin:$realm_version"
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

App模块build.gradle:

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt' // 必须添加这个插件
    id 'realm-android'
}

android {
    compileSdk 32

    defaultConfig {
        applicationId "com.example.yourapp"
        minSdk 21
        targetSdk 32
        versionCode 1
        versionName "1.0"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8' // 确保Kotlin编译目标与Java版本一致
    }
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.4.1'

    // Realm相关依赖
    implementation "io.realm:realm-android-library:$realm_version"
    implementation "io.realm:realm-kotlin-extensions:$realm_version"
}

3. 清理并重新构建项目

  • 先执行清理命令:
    ./gradlew clean
    
  • 然后重新构建:
    ./gradlew assembleDebug
    
  • 如果问题依旧,尝试关闭Android Studio,删除项目根目录下的.gradle、.idea文件夹和app模块的build文件夹,再重新打开项目同步Gradle。

关于google-services.json的警告

虽然这不是导致构建失败的原因,但可以将google-services.json放在app模块的src/main目录下,或者根据你的flavor配置调整文件位置,消除这些警告信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:21:01