无法执行dex:方法ID不在[0, 0xffff]范围内:65536 转换为Dalvik格式失败:无法执行dex:方法ID不在[0, 0xffff]范围内:65536
看起来这个错误是因为我的应用程序有太多的方法。我相当确定大部分这些方法都来自第三方jar文件,所以通过简化代码来解决这个问题是不现实的。我在网上找到了这两个建议。
在project.properties中添加
dex.force.jumbo=true
(使用adt版本21)。我已经这样做了,但仍然出现错误。按照http://android-developers.blogspot.co.il/2011/07/custom-class-loading-in-dalvik.html所述的方式使用多个dex文件。这似乎是唯一的选择,但我不明白它如何适用于我的情况。问题在于像Drive这样的服务具有太多依赖项。这个解决方案是否需要我修改Drive源代码,在引用其依赖项时使用变形?(显然不是选项)。
使用proguard来缩小删除未使用的代码/方法。使用proguard导出我的应用程序确实可以使文档服务集成在> 4.0设备上正常工作。但是,在测试2.3设备时会抛出classnotfound错误。
因此,我希望能就这个问题得到一些建议。选项2是否适用于我的情况?还有其他解决方案吗?
method_ids_size : 36700
。dexdump
是 SDK 的一部分。 - fadden