3

我正在使用 eclipse 编译一个方法数超过 65k 的大型项目。我正在使用 proguard 来减少官方文档中指定的方法计数:https ://developer.android.com/tools/building/multidex.html

使用 ProGuard 删除未使用的代码 - 为您的应用配置 ProGuard 设置以运行 ProGuard 并确保您为发布构建启用了收缩。启用压缩可确保您不会随 APK 一起发送未使用的代码。

它工作得很好,因为如果我用我的发布密钥签署我的应用程序,方法计数会减少到 43K。

问题是,如果我尝试使用 PLAY 按钮启动我的应用程序(这意味着使用 debug.keystore,而不在发布模式下对其进行签名),eclipse 没有使用 proguard,它会向我显示此错误,而无需让我测试我的应用程序:

Dex Loader Unable to execute dex: method ID not in [0, 0xffff]: 65536

我必须再使用 Eclipse 几个月,直到我们准备好通过这个庞大的项目迁移到 Android Studio,所以我需要在使用 debug mude 启动时减少方法数,所以我需要在调试模式下应用 proguard 启动蚀。¿ 它怎么能被donde?

谢谢

4

1 回答 1

0

如果您使用的是 Eclipse IDE,则无法在调试模式下启用 Proguard,但如果可以使用 Android Studio,您可以实现这一点。访问 - 是否可以在调试模式下使用proguard

只是一个疯狂的想法:

1.在发布模式下在您的应用程序上运行proguard,您将在Proguard文件夹中获得usage.txt。

2.打开usage,txt,其中包含从.apk中剥离的所有代码。该代码是从.apk中剥离出来的,因为它不需要。因此,请遵守这些方法。3.现在你可以从你的代码中手动删除这些方法,也许它可以解决方法计数的最大数量。

于 2015-10-29T04:50:45.020 回答