java - Gradle 构建错误 - 程序类型已存在

标签 java android gradle build gson

我正在尝试构建一个包含两个模块的 android 项目,一个是应用程序,另一个是库。这两个模块都在各自的 libs 文件夹中包含了 gson-2.8.5.jar 文件。当我部署应用程序时,它在构建期间失败并显示以下错误消息。

Program type already present: com.google.gson.FieldNamingPolicy$6
Message{kind=ERROR, text=Program type already present: com.google.gson.FieldNamingPolicy$6, sources=[Unknown source file], tool name=Optional.of(D8)}

但是,我通过将硬性提供的 .jar 文件依赖项替换为 gradle 的(实现 'com.google.code.gson:gson:2.8.5')来测试我的设置,它工作正常。但是我必须使用 libs 文件夹中的 jar 文件,因为稍后我将使用 Android.mk 文件构建整个项目,因此不能依赖 gradle 注入(inject)的依赖项。

我搜索了这个错误,但不幸的是没有找到任何有用的结果。希望有人知道如何解决这个问题。

最佳答案

修好了。似乎我必须为包含的模块将 transitive 属性标记为 false

之前:

implementation project(path: ':myLib')

之后(修复):

implementation project(path: ':myLib', transitive: false)

关于java - Gradle 构建错误 - 程序类型已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52335287/

相关文章:

java - 通过 URL 在 Google map fragment 上绘制路线

Android - Facebook GraphUser 没有电子邮件属性

java - Gradle : Task dependency tree ignored?

java - Gradle 运行 bat 文件作为依赖项

java - 动态绑定(bind)Java。对象是否具有其声明类型或实际类型的方法?

java - 我的世界 javascript 错误

java - 使用自定义 ListView 时出错

android - 防止模拟的 GPS 位置恢复为真实值

android - 构建 STLport NDK r5/Android 时出现问题

java - 如何在 gradle 3 或更高版本中使用 jar 文件?