转换为Dalvik格式失败65536限制

时间:2015-07-05 20:25:44

标签: java android eclipse jaxb

问题 - Unable to execute dex: method ID not in [0, 0xffff]: 65536

这是一个新问题。我正在使用eclipse而不是android studio。我已经阅读过有关stackoverflow的先前问题,我已经尝试了各种解决方案,从启用progaurd,启用dexjumbo,导入multidex项目和jar在eclipse等。没有任何帮助我的问题。我被困在这个问题上2天了。我已经通过运行应用程序的试错法从libs中删除了所有不必要的jar文件。现在我留下了所有必要但仍然得到错误。

What am I trying to do?

我实际上是想在Android设备上使用docx4j从内部存储中读取docx文件。我做了一个独立的应用程序,工作正常。我已经在eclipse的独立项目中测试了读,写和转换,但现在我想将我的代码集成到一个组项目中,我得到了这个错误。它还有3个其他jar文件,这些文件是其他进程所必需的。我删除了8个没有改变独立项目输出的罐子,剩下10个。

根据docx4j - "每个dex文件的Dalvik限制65536方法引用更多是在Android上运行docx4j而不是与JAXB相关的问题,但值得注意。我们正在非常接近这个限制。"

接下来是什么?我没有其他选择,只能根据this article尝试Pre-Dexing,或者删除65k限制。请告诉我如何解决这两个问题。给我一些想法,因为我无法删除任何更多的罐子。

链接到我正在使用的罐子的图像:http://i.stack.imgur.com/ksUxn.png

如果有人能告诉我必要的课程而不是jar ae-awt。那将是伟大的。

1 个答案:

答案 0 :(得分:0)

我最近在eclipse中遇到了同样的问题。发生这种情况是因为您的项目包含太多类,包括所有库类。我已经通过使用proguard来压缩构建文件来解决这个问题。这非常有用,因为它可以通过删除未使用的代码来自动缩小,优化和混淆代码。 了解有关计划的信息:
http://developer.android.com/tools/help/proguard.html
*记住proguarding提供太多警告,必须小心使用。

你也可以使用链接:
https://www.contentful.com/blog/2014/10/30/android-and-the-dex-64k-methods-limit/