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

这个问题我帮不少开发者排查过,核心原因就是项目中重复引入了Android Support库的同一类——具体到你这里是android.support.v13.view.DragAndDropPermissionsCompat被多个依赖包同时包含,导致D8工具合并DEX时出错,进而触发了transformDexArchiveWithExternalLibsDexMergerForDebug任务失败。

下面是一步步的解决办法:

  • 第一步:定位重复依赖的来源
    打开终端,在项目根目录执行命令查看完整依赖树,找出哪里重复引入了support-v13:

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

    在输出结果里搜索support-v13,你会发现这个库可能是你主动引入的,也可能是某个第三方依赖间接带进来的。

  • 第二步:排除多余的重复依赖
    如果是第三方库偷偷引入了support-v13,你可以在对应的依赖声明里排除它,比如:

    implementation('com.xxx.thirdparty:library:1.2.3') {
        exclude group: 'com.android.support', module: 'support-v13'
    }
    

    这样就能去掉第三方库带进来的重复依赖,只保留你项目需要的版本。

  • 第三步:统一所有Support库的版本
    Android Studio 3.0+强烈建议统一所有Support库的版本,避免不同版本之间的类冲突。你可以在根目录的build.gradle里定义全局版本变量:

    ext {
        supportLibVersion = '28.0.0' // 换成你项目实际使用的兼容版本
    }
    

    然后所有Support库依赖都用这个变量声明:

    implementation "com.android.support:appcompat-v7:$supportLibVersion"
    implementation "com.android.support:design:$supportLibVersion"
    // 除非你明确需要v13的特定功能,否则不要主动引入support-v13
    
  • 最后:清理缓存重新构建
    执行命令清理项目缓存,避免旧缓存干扰新的依赖配置:

    ./gradlew clean
    

    然后点击Android Studio的「Rebuild Project」按钮重新构建项目。

如果还是有问题,检查一下是不是module之间的依赖传递、或者本地jar包也包含了Support类,这些都可能导致隐藏的重复冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:49:32