【问题标题】:ProGuard makes apps not compile with "could not convert to dex bytecode with error 1"ProGuard 使应用程序无法编译“无法转换为 dex 字节码并出现错误 1”
【发布时间】:2011-08-07 03:43:26
【问题描述】:

我正在尝试使用最新版本的 Eclipse、Android SDK、ADT 和 ProGuard 在 Eclipse 中导出我的 Android 应用程序。如果我将 ProGuard cfg 文件添加到 default.properties 文件(未修改 cfg 文件)并尝试导出已签名的 apk,则导出器失败,说它无法转换为 dex 字节码并出现错误 1。注释掉ProGuard 文件可以很好地导出。我尝试使用 -clean 标志启动 Eclipse,使用 -dontobfuscate 标志禁用混淆,多次清理项目并修复 Android 属性。我该如何解决这个问题?

编辑:我引用并集成了 acra 库 (jar),但后来为了解决这个问题而将其删除。它没有帮助:(所以,唯一引用的库是由“创建项目”对话框添加的 Android 2.1 库。我还尝试删除该项目并从我的 CVS 中重新获取它,但无济于事。

【问题讨论】:

  • ProGuard 没有对 Dex 字节码做任何事情,所以似乎还有其他事情发生。你检查过 Proguard 的输出以确保它看起来没问题吗?你能提供更多信息吗?详细错误?日志?堆栈跟踪?

标签: java android apk proguard signing


【解决方案1】:

您应该确保您使用的是最新版本的 ProGuard(在撰写本文时为 4.6 版)。如果最新版本不能解决问题,您可以在 ProGuard 的错误跟踪器上报告问题。在这种情况下,您可以通过减少优化次数或完全禁用优化来解决此问题。

【讨论】:

  • 我从 ProGuard 网站获得了最新版本,并用它替换了捆绑的版本,但无济于事。我会尝试降低优化次数,但我不确定这会有什么帮助。
  • 我遇到了同样的问题,这个答案实际上为我解决了这个问题(用 v4.6 替换捆绑的 ProGuard)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多