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冲突问题

我之前也碰到过几乎一模一样的问题!给你几个亲测有效的排查和解决方向,你可以挨个尝试:

  • 精准定位重复依赖来源
    先执行依赖分析命令,找出到底是哪些库在重复引入v4包。在终端里运行:

    # Mac/Linux环境
    ./gradlew app:dependencies
    # Windows环境
    gradlew.bat app:dependencies
    

    搜索输出内容里的android.support.v4,重点关注不同版本的v4包被哪些第三方库引入,或者是否存在同一库被多次引入的情况。

  • 强制统一Support库版本
    大部分冲突都是因为不同依赖使用了不同版本的Support库,在项目根目录的build.gradle中添加以下配置,强制所有依赖使用同一版本的Support库(把版本号替换成你项目正在使用的):

    subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'com.android.support'
                        && !details.requested.name.contains('multidex')) {
                    details.useVersion '27.1.1' // 替换为你的项目Support版本号
                }
            }
        }
    }
    
  • 排除重复的直接依赖
    检查你的app/build.gradle:如果已经引入了appcompat-v7,就不需要再单独引入support-v4了(因为appcompat-v7已经包含v4的核心内容),直接删掉单独的support-v4依赖声明。如果是第三方库自带了v4包,也可以在依赖里手动排除:

    implementation('com.example.thirdparty:library:1.0.0') {
        exclude group: 'com.android.support', module: 'support-v4'
    }
    
  • 彻底清理缓存与重建
    既然只有你的设备出现问题,除了清理Android Studio缓存(File -> Invalidate Caches / Restart),还要:

    • 卸载设备上的应用,手动清除该应用的残留数据
    • 执行Build -> Clean Project,再执行Build -> Rebuild Project,不要直接使用Make Project功能
  • 禁用Instant Run
    Android Studio 3.1的Instant Run有时候会残留旧的构建缓存,导致奇怪的类重复问题。你可以在File -> Settings -> Build, Execution, Deployment -> Instant Run里,取消勾选Enable Instant Run to hot swap code/resource changes on deploy,然后重启AS再重新构建。

这个报错的核心就是同一类被多次打包进DEX文件,只要找到重复的来源,统一版本或者排除重复就能解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:52:00