【问题标题】:Conversion to dalvik format failed with error 1(when adding gnu-crypto.jar) in eclipse在 Eclipse 中转换为 dalvik 格式失败,出现错误 1(添加 gnu-crypto.jar 时)
【发布时间】:2012-02-15 15:42:42
【问题描述】:

有很多类似的问题,但我已经尝试了所有方法,但没有帮助。

错误是:

stack[top0]: type{java.lang.InterruptedException}
...while working on block 01d0
...while working on method handleConfirmation:(Ljavax/security/auth/callback/ConfirmationCallback;)V
...while processing handleConfirmation (Ljavax/security/auth/callback/ConfirmationCallback;)V
...while processing gnu/crypto/auth/callback/AWTCallbackHandler.class

[2012-01-21 15:31:22 - AppName] Dx 1 error; aborting
[2012-01-21 15:31:22 - AppName] Conversion to Dalvik format failed with error 1

只有当我尝试添加外部 jar 进行加密时才会发生这种情况 - gnu-crypto.jar。我试过的:

  • 项目 -> 清理
  • 从 Eclipse 中删除项目并重新导入
  • 将 proguard 文件(bin 和 lib 目录)更改为最新
  • 将 java -jar "%PROGUARD_HOME%"\lib\proguard.jar %* 更改为 java -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 % 8 %9
  • 取消选中“当外部 jar 包含本机库时强制出错”选项(就像您所做的那样)和清理项目
  • 从 Java 构建路径中删除所有 jar 文件,然后是 Android 工具 -> 修复项目属性,然后再次添加外部 jar

【问题讨论】:

  • 如果两个不同的 jar 文件使用相同的类是可能的..
  • 我没听明白 - 也许当两个类使用同一个 jar 时?如果是这样,那不是我的情况 - 只有一个类使用这个 jar
  • android.jar 和 gnu-crypto.jar

标签: android jar external dalvik


【解决方案1】:

确保删除所有可能对具有相似类的 jar 的双重引用。这可能通过引用不同版本的 android 或引用 android 和 jdk 或 jre 来实现。

【讨论】:

  • 这真的很奇怪 - 当我从项目中删除加密并从外部库中删除 gnu-crypto.jar 时,它编译成功,但是当我添加 gnu-crypto.jar 时(我只在 1 中使用它类)它抛出这个错误
【解决方案2】:

gnu-crypto 的 2.1.0 版本似乎有些不稳定。手动运行 dx 会产生你提到的错误。

您可以尝试将 gnu-crypto 的源代码直接添加到您的应用程序中,或者改用 2.0.1 版本。

【讨论】:

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