首页 > 解决方案 > 项目重建失败,但 APK 编译并正确运行

问题描述

这是我运行“重建项目”时遇到的错误

Program type already present: org.apache.commons.net.DatagramSocketClient Message
{kind=ERROR, text=Program type already present: org.apache.commons.net.DatagramSocketClient, 
sources=[Unknown source file], tool name=Optional.of(D8)}

Caused by: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: 
Error while merging dex archives: 
C:\Users\Dave\Studio Projects\sbandroid\app\build\intermediates\transforms\dexBuilder\debug\19, 
C:\Users\Dave\Studio Projects\sbandroid\app\build\intermediates\transforms\externalLibsDexMerger\debug\0, 
C:\Users\Dave\Studio Projects\sbandroid\app\build\intermediates\transforms\dexBuilder\debug\16.jar, 
C:\Users\Dave\Studio Projects\sbandroid\app\build\intermediates\transforms\dexBuilder\debug\17.jar, 
C:\Users\Dave\Studio Projects\sbandroid\app\build\intermediates\transforms\dexBuilder\debug\18.jar

如标题所示,如果我只是在 Studio 中按 Run 或 Debug,APK 会很好地组合在一起,并且在 gradle 构建期间不会标记任何错误。

我应该担心这种构建行为吗?

标签: android

解决方案


投诉内容如下...

Program type already present: org.apache.commons.net.DatagramSocketClient

我最近在这个答案中回答了这个问题- 它是可以采用的,因为问题几乎“相同”。您只需要找到任何重复 org.apache.commons的依赖项,然后将它们从构建中排除(其中一个必须留在左侧)。


推荐阅读