当前位置: 首页 > 知识库问答 >
问题:

Android studio build 2依赖项包含相同的包

徐兴昌
2023-03-14

我有两个包作为Android项目中的依赖项:A和B,在build.gradle中定义如下:

dependencies {
    compile 'dependency-A'

    compile files('libs/dependency-B.jar')
}

我可以生成项目,但是当尝试运行它时,我收到以下错误:

:app:compileDebugSources
app:transformClassesWithDexForDebug
意外的顶级异常:
com.android.dex。DexException:多个dex文件定义了Lcommon/package/in/both/Dependencies
在com.android.dx.merge.DexMerger.readSortableTypes(dexmerge.java:579)
在com.androidx.dx.merge.DexMerger.getSortedTypes上(dexmmerger.java:535)
com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)
位于com.andro.dx.command.dexer.Main.runMonoDex(Main.java:334)
位于com.android.dx.command.dex.Main.run(Main.java:277)
,位于com.android.dx.command.Main(Main.java:106)
FAILED
失败:构建失败,出现异常
*出错原因:<br>任务执行失败:应用程序:transformClassesWithDexForDebug。

如何排除公共包或对其执行某些操作,以便它能够正确生成和运行?

我使用的是Android Studio 1.5.1, 构建工具版本 23.0.2, 网站建设:等级:1.5.0

共有1个答案

李博达
2023-03-14

我还没有找到简单而干净的解决方案,但是这里有一个可能的解决方法(如果不禁止反编译任何依赖项):

>

  • 依赖项中删除常见的包/类-A:解压缩.jar文件,删除文件,将其余文件压缩回jar;

    使用任何 java 反编译器反编译依赖项 B,例如使用这个;

    添加反编译的依赖项-B.java文件作为模块源的一部分,或者可能作为单独的一个;

    生成并运行项目。

  •  类似资料:
    • 问题内容: 我正在为Java中的ERP系统进行定制。在我的定制中,我想使用Apache POI 3.10.1。因此,我集成了jars poi-3.10.1-20140818.jar和poi-ooxml-3.10.1-20140818.jar。 但是,这些jar包含几个类,这些类已经包含在ERP系统的核心代码中,但是有所不同。 如果核心ERP类覆盖POI类,则定制将引发运行时异常。如果POI类覆盖核

    • 我正在开发一个Java项目,使用maven作为依赖项管理器/构建工具。我当前在将依赖项的依赖项解析到正确版本时遇到问题。 有问题的依赖项称为JasperReports-Functions-6.1.0.jar,它不是托管在maven repo中,而是以jar形式提供的。 如何强制jar依赖项使用子依赖项的某个版本?

    • 问题内容: 我看到了类似的问题,但未找到可接受的答案。问题-我有一些小功能我自己的android库。我的库使用其他库-fe Hawk(无sql数据库)。我的图书馆gradle文件: 图书馆工作正常。如果我将它用作另一个项目中的项目-它也可以工作。但是当我生成文件(带有-> )并包含到单独的项目中时-失败。项目仅查看我的图书馆的班级。Hawk com.orhanobut.hawk软件包和off其他软

    • 问题内容: 有没有一种方法可以强制maven(2.0.9)将所有依赖项包含在单个jar文件中? 我有一个构建到单个jar文件中的项目。我希望将依赖项中的类也复制到jar中。 更新:我知道我不能只在jar文件中包含jar文件。我正在寻找一种方法来解压缩指定为依赖项的jar,并将类文件打包到我的jar中。 问题答案: 你可以使用带有描述符的插件来执行此操作。这是我们之一的相关块,它可以完成此任务:

    • 我使用在JAR中包含依赖项 问题是它没有添加我的dependancies的所有dependancie树,我不知道为什么。 有人知道吗?

    • 我是OSGi的新手。我正在使用Apache Felix。我已经构建了一个捆绑包,并且具有依赖性。当我尝试使用启动它会给我这个错误。 org . OSGi . framework . bundle exception:无法解析lk . ucsc . research . belly runner[20](R 20.0):缺失需求[lk . ucsc . research . belly runner