Android:两个依赖性,每个依赖性取决于相同的组件,触发dexarchivemergerexception



我有一个我的项目由两个不同库组成的情况,显然对同一组件具有依赖性:

gradle.Build of Client App:

android {
...
}
dependencies {
...
implementation <dependency # 1>
implementation <dependency # 2>
...
}

我看到的错误:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.

有问题的Android问题:

Program type already present: <package name>.<Component>

我们最近对这些依赖项之一进行了更改,以期消除此错误:

build.gradle-依赖项#1

android {
...
}
dependencies {
...
api <dependency # 1>
api <dependency # 2>
...
}

但是,这种变化显然对结果没有影响。

我们启用了多端。该属性也对结果没有影响。

我什至到了我的客户端应用程序的gradle文件中添加了这个代码块:

configurations {
    runtime.exclude group: "<package name>", module: "<problem module>"
}

每个示例此处提供:https://docs.gradle.org/current/userguide/depparency_types.html

我开始在选项上低落。

是否可以将Gradle配置更改为一个,多个或所有Gradle文件,以便停止这样做?如果是这样,我有什么选择?

如果依赖关系存在于单个模块的两个不同依赖项中,以使存在相同的软件包名称,则您可能会忘记构建客户端应用程序。例如:

Dependency # 1 -> classes.jar -> <some package name> -> Component
Dependency # 2 -> classes.jar -> <THE SAME package name> -> Component

如果您可以修改两个库,则将被迫更改其中一个的包装名称。没有办法解决,没有办法。

最新更新