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

升级Android项目时遭遇com.android.build.api.transform.TransformException异常

解决Kotlin升级后出现的com.android.build.api.transform.TransformException: java.lang.RuntimeException: Unable to pre-dex异常

我之前升级Kotlin版本的时候也碰到过一模一样的问题,折腾了好一会儿才解决,给你分享几个亲测有效的解决思路:

1. 先彻底清理项目缓存

Android Studio的缓存经常会残留旧的编译文件,尤其是版本升级后很容易出问题:

  • 先点菜单栏的Build → Clean Project,等清理完成后再点Build → Rebuild Project
  • 如果还是不行,手动删掉项目根目录下的.gradle文件夹和app/build文件夹,然后重新点击File → Sync Project with Gradle Files

2. 检查并解决Kotlin依赖冲突

升级到Kotlin 1.2.41后,有些第三方库可能还依赖着旧版本的Kotlin stdlib,这就会导致版本冲突触发预编译错误。你可以用这个命令查看完整的依赖树:

./gradlew app:dependencies

找到所有包含kotlin-stdlib的依赖项,如果发现有版本低于1.2.41的,就在项目根目录的build.gradle里强制统一版本:

subprojects {
    configurations.all {
        resolutionStrategy {
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
            // 如果项目用到了jdk8的特性,也加上下面这行
            // force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
        }
    }
}

3. 确认kapt的配置完全正确

你已经替换了annotationProcessor为kapt,还要确保插件的顺序没错:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt' // 这个必须放在kotlin-android插件之后

另外,要检查所有之前用annotationProcessor的依赖都换成了kapt,比如Dagger、Room这类需要注解处理器的库,不能有遗漏。

4. 确保使用的是JDK 8

Kotlin 1.2+版本要求JDK 8及以上,你可以检查一下:

  • 打开File → Project Structure → SDK Location
  • 看JDK location是不是指向JDK 8的安装路径,如果不是,修改后重新同步项目

要是上面的方法都没解决,最后可以试试File → Invalidate Caches / Restart,选择Invalidate and Restart,让Android Studio彻底清理缓存并重启,这个方法有时候能解决一些奇奇怪怪的编译问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:03:59