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

升级Android Studio 3.1后项目构建失败:Program type already present异常

解决Android Studio 3.1升级后「Program type already present: com.sun.activation.registries.LineTokenizer」构建错误

嘿,这个问题我升级AS 3.1时也踩过坑!这个报错本质是重复依赖冲突——你的项目里有多个第三方库或依赖包都引入了com.sun.activation.registries.LineTokenizer这个类,而AS 3.1默认启用的D8 Dex编译器对重复类的检测比旧版更严格,直接触发了构建失败。

下面是具体的解决步骤:

1. 定位重复依赖的来源

首先得找出到底是哪个依赖引入了重复类。在终端执行Gradle依赖分析命令(把testeapn换成你的模块名):

./gradlew testeapn:dependencies

在输出结果里搜索javax.activation或activation关键词,就能看到哪些库带了这个依赖。

2. 排除重复的依赖项

找到重复依赖后,在对应库的依赖声明里添加exclude规则,去掉重复部分。比如假设是com.xxx.thirdlib:1.0.0引入了重复的activation库,就这么写:

implementation('com.xxx.thirdlib:1.0.0') {
    exclude group: 'javax.activation', module: 'activation'
}

3. 全局排除(找不到具体依赖时用)

如果实在定位不到具体是哪个库导致的,也可以在模块的build.gradle里全局排除这个重复依赖:

configurations {
    all {
        exclude group: 'javax.activation', module: 'activation'
    }
}

如果项目确实需要这个依赖,再手动添加一个统一版本的依赖:

implementation 'javax.activation:activation:1.1.1'

4. 清理缓存解决奇怪问题

有时候编译器缓存也会导致这类问题,试试以下操作:

  • 点击AS菜单栏的File > Invalidate Caches / Restart,选择「Invalidate and Restart」重启AS
  • 手动删除项目根目录的.gradle文件夹和模块下的build文件夹,再重新执行构建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:12:29