Gradle:程序类型已经存在

时间:2019-02-24 16:50:05

标签: java gradle

我正在尝试开始使用libaums项目(https://github.com/magnusja/libaums)。 我写了一个类Log,它镜像了android.util.Log的方法,却将所有内容都写入了文件中(因为我无法访问android上的调试输出流)。我无法理解如何从我编写的模块中构建软件包,并将其作为本地依赖项包含到libaums项目(Gradle compilation: package not found)中,所以我决定仅导入Log.java(com。在两个libaums项目(应用程序和实际的libaums库)中实现Log类的iglogger程序包。反过来,这在合并dex文件的阶段就产生了一个问题-应用程序项目同时依赖Log类和libaums,而libaums也使用Log类。

13684:09:44:38.705 [ERROR] [com.android.build.gradle.internal.tasks.DexMergingTaskDelegate] java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
13861:Caused by: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
13649:09:44:38.698 [ERROR] [org.gradle.api.Project] D8: Program type already present: com iglogger.Log
13685:Program type already present: com.iglogger.Log
13862:Program type already present: com.iglogger.Log
13871:Program type already present: com.iglogger.Log

经过一些研究,解决方案似乎是在将libaums导入应用程序项目时,我必须排除对Log.java的依赖(即com.iglogger.Log)。但是我该怎么做呢?看来我已经在libaums项目中声明了对Log.java的依赖,以便以后可以排除它。如果是这样,那怎么办?

1 个答案:

答案 0 :(得分:0)

因此,从依赖lib项目的app项目中删除了文件(com / iglogger)解决了问题。 即Java中的 import 语句似乎不仅包括要使用的程序包的声明,而且可选地包括程序包本身的对象。