gpt4 book ai didi

Android:我的应用程序太大并给出 "Unable to execute dex: method ID not in [0, 0xffff]: 65536"?

转载 作者:IT老高 更新时间:2023-10-28 22:17:19 34 4
gpt4 key购买 nike

我正在尝试将我的应用程序与 Box、Dropbox 和 Google Drive 集成。所有这 3 项服务都需要许多 3rd 方 jar。此外,我的应用程序已经需要一些 3rd 方 jar。现在,当我尝试从 Eclipse 运行我的应用程序时,出现以下错误:

Unable to execute dex: method ID not in [0, 0xffff]: 65536 Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536

出现这个错误似乎是因为我的应用程序有太多方法。我相当肯定这些方法中的大部分来自第 3 方 jar,因此尝试通过简化我的代码来解决这个问题是不现实的。我在网上找到了这两个建议。

  1. dex.force.jumbo=true 添加到 project.properties(并使用 adt 版本 21)。我这样做了,但仍然收到错误。

  2. 使用多个 dex 文件,如下所述:http://android-developers.blogspot.co.il/2011/07/custom-class-loading-in-dalvik.html .这似乎可能是唯一的选择,但我不明白它如何适用于我的情况。问题是像 Drive 这样的服务有太多的依赖关系。在引用其依赖项时,此解决方案是否不需要我修改 Drive 源以使用变形? (这显然不是一个选项)。

  3. 使用 proguard 缩小删除未使用的代码/方法。使用 proguard 导出我的应用程序确实有效,并且文档服务集成在 >4.0 设备上按预期工作。但是,在 2.3 设备上进行测试时会引发 classnotfound 错误。

所以,我希望就这个问题得到一些建议。选项 2 是我的情况的解决方案吗?我应该考虑其他解决方案吗?

最佳答案

您还可以将其中的一个或多个作为插件开发到您的主应用程序中,以可供下载的单独 APK 的形式。该 APK 会暴露一些主应用程序将使用的组件——因为我不知道您与这些服务集成的性质,所以我无法对此提出更具体的建议。您将使用自己的 signature级自定义<permission>保护两个应用程序之间的通信。而且,作为奖励,如果使用第三方库增加了对额外权限的要求,您只需在插件 APK 中需要这些权限,从而使您的主 APK 更小。

关于Android:我的应用程序太大并给出 "Unable to execute dex: method ID not in [0, 0xffff]: 65536"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15508477/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com