【问题标题】:"Conversion to Dalvik format failed with error 1" -- on export only“转换为 Dalvik 格式失败,错误 1”——仅在导出时
【发布时间】:2011-11-17 03:47:24
【问题描述】:

我知道这是一个重复的问题,但我已阅读并尝试了此站点上的所有解决方案,但我仍然收到错误消息;另外,只有当我从 Eclipse 导出我签名的 apk 时,我才会得到它。我能够构建和运行未签名的 apk。

我有:

  • 从构建路径中删除(后来恢复)所有库
  • 清理并重建了我的所有项目
  • 使用 -clean 选项重新启动 Eclipse
  • 从头开始重新创建应用项目

我知道错误 1 ​​表示我有重复的符号,但我已经检查、清理和重建了我的构建路径一百万次,但我仍然收到错误,仅在我导出时

  • 如果我有重复的符号,我的未签名 apk 是否也会收到错误 1?
  • 如果我确实有重复的符号,我怎样才能让 Eclipse 告诉我它们是什么?我从导出向导中得到的只是一个单行错误对话框。 :(
  • 我在手动签署 apk 时没有收到任何错误,但是当我将它安装在手机上时,我收到一个简单的错误:“未安装应用程序。” :(:(

我的项目结构如下:

  1. 一个包含我 99% 代码的 Android 库项目。它在构建路径中有一份所需 jar 文件的副本。
  2. 一个包含两个类的 Android 应用程序项目。它通过 Android 选项卡引用库项目,而不是 Java 构建路径。除了 Android 2.1 之外,构建路径中没有引用其他源、项目或库。我什至从头开始重新创建了这个项目(我没有重新创建库项目,因为它要大得多)。

几天前一切正常!任何建议都非常感谢!

提前谢谢...

编辑更新:当我禁用 Proguard 时错误消失。很奇怪。

【问题讨论】:

    标签: android apk android-build


    【解决方案1】:

    这是 Windows 开发人员工具中 Proguard 的问题 - 编辑 Android SDK\tools\proguard\bin\Proguard.bat

    替换:

    call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*
    

    与:

    call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
    

    保留对此解决方案的引用,因为下次您更新 SDK 工具时,它可能会重新引入(在最近的几个版本中已经存在)。

    【讨论】:

    • 该错误已在 SDK 的 v15 中修复。长话短说,我必须从命令行运行 Proguard 才能看到错误消息并修复我的项目。
    • 我早就应该将此标记为正确答案。谢谢!
    • 我有库项目,只有在我清理导出项目所依赖的所有项目以及我正在导出的项目时,才能修复此错误。
    【解决方案2】:

    将您的 Proguard 升级到最新版本,即 4.7... 从http://sourceforge.net/projects/proguard/files/latest/download?source=files 下载 zip .... 然后将“lib”和“bin”文件夹从 zip 复制到您的 sdk/tools/proguard/ 以替换默认值或说旧的“bin”和“lib”... . 再次尝试导出您的项目...

    【讨论】:

    • 这对我有用。我有旧的 proguard,当我升级到更新的 Android SDK 时,我遇到了这个问题。感谢兄弟的帮助。
    • 这对我有用。让我补充一下,我下载的是 4.8 版而不是 4.7 版,因为那是最新最好的。此外,不要替换整个 proguard 包,而只替换 bin 和 lib 目录(如上所述),否则将无法正常工作。
    • 我认为这是大多数情况下的有效解决方案。每次遇到此错误时,我只需将 ProGuard 升级到最新版本,然后它就可以工作了。还要记住在 eclipse.ini 中为 Eclipse 提供足够大的堆大小。对于更大的项目来说,大约是 1024M。
    【解决方案3】:

    转到项目并取消选择“自动构建”。然后清理项目并全部构建。为我导出签名的应用程序包工作

    【讨论】:

    • 您应该将此问题标记为重复问题,而不是写您在here 之前写的答案。
    【解决方案4】:

    这也让我发疯了。我尝试了一切,更改了所有外部库等等,但没有任何效果。我尝试了新版本的 proguard,但没有成功。

    原来我使用了一个名为“GridLayout”的库来支持旧设备。在我将“GridLayout”类重命名为“CustomGridLayout”后,它工作得很好。好像你不能有重复的类名。

    【讨论】:

      【解决方案5】:

      这是对我有用的关键

      http://android.foxykeep.com/dev/fix-the-conversion-to-dalvik-format-failed-with-error-1-with-adt-14

      据说在 ADT-15 中已修复,解决方法是

      1) 对于每个 X_src 元素,右键单击它,然后构建路径 > 从构建路径中删除。

      2) 将打开一个弹出窗口。确保选中“同时从项目中取消链接文件夹”,然后接受它。

      您仍然可以调试库代码,但您需要管理这些项目中的断点,然后在类文件选项卡中单步执行代码。

      【讨论】:

        【解决方案6】:

        我尝试了一些上述解决方案,但都没有运气。然后,我关闭了Eclipse,重新打开,就可以成功导出了。但是,如果我再试一次,它将无法正常工作。

        所以,我想也许每次“打开”Eclipse 时我只能一个成功导出。无论如何都不是一个理想的解决方案,但是当所有其他方法都失败时,试一试。它对我有用。

        【讨论】:

          【解决方案7】:

          这个问题的公认答案(从 2011 年开始)对我不起作用。不过,这个问题的正确答案贴在这里:

          Android export give a "Conversion to Dalvik format failed error1"

          【讨论】:

            【解决方案8】:

            取消选择自动构建对我有用。坦克 anjaneya;

            0)取消选择自动构建 1)清理项目 2)构建项目。 3) 在 Android 工具选项中导出签名的应用程序。

            【讨论】:

              猜你喜欢
              • 2011-06-29
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多