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

Android Studio现有Java项目接入Kotlin构建报lint返回值-1如何解决

修复方案

这个报错的核心触发点是Kotlin编译任务未正常执行,导致后续注解提取、Lint任务找不到Kotlin编译产物目录,直接返回-1异常,按以下步骤修复即可:

1. 修复配置硬伤

你贴的模块级build.gradle存在明显配置位置错误:kotlin-stdlib依赖被写到了android {}块内部,Gradle不会识别这个位置的依赖声明,直接导致Kotlin编译任务没有被加入任务执行链,自然不会生成build/tmp/kotlin-classes/debug目录。
修正后的模块级配置参考:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
    // 保留原有compileSdk、defaultConfig、buildTypes等配置,不要在此处放依赖声明
}
// 所有依赖必须放到dependencies块内
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    // 原有其他AndroidX、第三方依赖统一放在此处
}

注意多模块项目下,:Core、:Global这类库模块如果存在Kotlin代码,也要同步加上apply plugin: 'kotlin-android',并在对应模块的dependencies块中引入kotlin-stdlib,不要只在主app模块配置。

2. 修正任务执行顺序

部分老版本AGP和Kotlin插件组合会存在任务依赖缺失问题,注解提取任务会提前于Kotlin编译任务执行,导致找不到产物目录。在模块级build.gradle末尾加如下配置,强制任务执行顺序:

afterEvaluate {
    android.applicationVariants.all { variant ->
        def variantCapitalize = variant.name.capitalize()
        tasks["extract${variantCapitalize}Annotations"].dependsOn("compile${variantCapitalize}Kotlin")
    }
}

如果是库模块,把applicationVariants替换为libraryVariants即可。

3. 验证与缓存清理

  • 先在android块内增加lint配置,暂时关闭lint的构建阻断,方便定位核心编译问题:
android {
    // 原有配置保留
    lintOptions {
        abortOnError false
    }
}
  • 执行全量清理,不要只清理全局Gradle缓存,项目本地的构建缓存也要一并删除:
./gradlew clean
rm -rf ~/.gradle/caches/
rm -rf .gradle/
rm -rf build/ */build/
  • 重新执行构建时加上栈信息参数,方便排查残留问题:
./gradlew assembleDebug --stacktrace

如果首次构建仍然提示目录不存在,可以手动在报错模块的build/tmp/路径下创建kotlin-classes/debug空目录,首次Kotlin编译任务执行成功后,后续构建会自动生成该目录,不需要手动维护。

补充:你配置中声明的jcenter仓库已停止服务,后续如果出现依赖拉取失败,直接将jcenter()从仓库列表移除即可,保留google()和mavenCentral()就能覆盖绝大多数依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:57:16