6

尝试运行 Android 应用程序时,有没有办法让 Eclipse在 dex'ing 之前始终运行 proguard?例如某种无缝插入它作为构建步骤的方式?

默认情况下它会在导出时运行,但我需要它始终运行,即使只是从菜单/键盘执行正常的“运行”或“调试”。


对于上下文,这是相关的原因是我遇到了“操作码太多/没有扩展的操作码”(http://code.google.com/p/android/issues/detail?id=26203)问题我在 Eclipse 中构建。对于 ant 构建来说这不是问题,因为它们运行 proguard,它会剥离所有未使用的代码。到目前为止,我一直在手动从第三方依赖项中删除未使用的东西,但这有点荒谬。

此外,作为附带的好处,它应该会大大加快我的构建速度,因为仅收缩的 proguard 运行方式比 dex'ing 快得多,并且它删除了大部分需要 dex'ed 的代码。

4

1 回答 1

7

此行为在 Android 开发工具中的 Eclipse 插件的构建器中进行了硬编码。您可以调整其源代码 ( Android Tools ),使构建器的行为更像导出向导(或者在内部,BuildHelper 类的行为更像 ExportHelper 类)。不过,这可能不是很有趣。

或者,您可以从 Eclipse 运行 Ant。

另外,ProGuard 的商业闭源兄弟DexGuard集成了 ProGuard 和 dx(以及 apkbuilder、jarsign、zipalign)的功能。它可以配置为在 Eclipse 和 Ant 中为调试/发布构建收缩/混淆/优化。

(我是 ProGuard 和 DexGuard 的开发者)

于 2012-07-04T14:38:30.343 回答