java - 当我将 .jar 文件包含到我的 android 项目中时出现 Dex 错误

标签 java android jar dex

我试图将 2 个 .jar 文件包含到我的 android 项目中,我将它们拖到我的 libs 文件夹中,然后我还通过 Build->Edit Library and Dependencies->jar Dependency,不管有没有这最后一步,我都完成了,无论是哪种方式,当我将它们添加到我的 libs 文件夹时,如果我尝试运行我得到的应用程序:

信息:Gradle 任务 [:app:assembleDebug] 错误:任务 ':app:transformDexArchiveWithExternalLibsDexMergerForDebug' 执行失败。

java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex Information:BUILD FAILED in 10s Information:1 error Information:0 warnings Information:See complete output in console

但是,如果我从我的 libs 文件夹中删除文件,错误就会消失,问题是我显然想将这些 jar 文件用于我的应用程序我在这里看到了其他 dex 错误主题,但似乎没有一个解决问题这通过添加和删除 jar 文件

谢谢

最佳答案

如果您阅读 this文档,您将了解 Android 应用程序 (APK) 文件包含 Dalvik 可执行 (DEX) 文件形式的可执行字节码文件,其中包含用于运行您的应用程序的已编译代码。 Dalvik 可执行文件规范将单个 DEX 文件中可以引用的方法总数限制为 65,536 或 64k 方法。您正在使用的 jar 文件包含类和方法。将它们添加到您的项目中必须超过允许的最大 64k 方法标记,因此会产生错误。

这个问题很常见,有很多可用的解决方案,例如 this .但是,在您的情况下,我建议您转到应用程序级别的 gradle 文件并删除所有不必要的依赖项和冗余依赖项(如果存在)。还要尝试仅导入项目实际需要的那些依赖项,例如,如果您需要来自 Google Play 服务的库,而不是导入整个 Google Play 服务库,请仅导入您的项目实际需要的那些。

此外,如果可能,请尝试查找可以替换当前 jar 文件的 jar 文件。

PS:您能告诉我您要导入的 jar 文件的名称吗?它可能有助于以简单的方式解决问题。

关于java - 当我将 .jar 文件包含到我的 android 项目中时出现 Dex 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47514818/

相关文章:

maven - 流口水 6.4 KieScanner : How create and add Jar with rules in Maven?

java - 如何等待只有固定的 "*.txt"扩展名的文件?

Java,比较3个整数,排列最大,中值和最小

Android:了解 Intent 过滤器

java - 查找Jar中的文本文件

java - 每天特定时间自动执行java jar的最佳方式

java - 从活页乐谱中提取每一行的小节

java - Servlet 调度程序 URL

android - 使用 altBeacon 库的所有信标都不会在 Android 中显示

android - 计算出方法需要多少时间来加载