Android &引用;转换为Dalvik格式失败,错误为1“;更新至ADT 14后

Android &引用;转换为Dalvik格式失败,错误为1“;更新至ADT 14后,android,exception,adt,dalvik,android-library,Android,Exception,Adt,Dalvik,Android Library,更新到最新的开发工具ADT 14后,包含库项目的my Android项目将不再运行,并产生以下错误: Dx UNEXPECTED TOP-LEVEL EXCEPTION: ... already added: ... ... Conversion to Dalvik format failed with error 1 用包括删除和重新添加项目的解决方案描述此问题的其他线程不起作用。这是android sdk的已知问题。查看此修复程序。我在项目中使用了一个库,但出现了相同的错误-通过删除库和s

更新到最新的开发工具ADT 14后,包含库项目的my Android项目将不再运行,并产生以下错误:

Dx UNEXPECTED TOP-LEVEL EXCEPTION: ... already added: ...
...
Conversion to Dalvik format failed with error 1

用包括删除和重新添加项目的解决方案描述此问题的其他线程不起作用。

这是android sdk的已知问题。查看此修复程序。

我在项目中使用了一个库,但出现了相同的错误-通过删除库和src文件夹、清理并将其添加回并再次清理,解决了此问题

除去

  • 项目属性->Android:删除libs,“应用”
  • 删除包含的库src文件夹
  • 更干净
  • 再加上

  • 项目属性->Android:再次添加libs,“应用”
  • 清洁工程
  • 要解决此问题,您应该:

    • 右键单击您的项目>属性>Java构建路径,并删除除Android I.J之外的所有库(取决于您的版本)
    • 项目>清洁
    • 重新添加已删除的库

    如果问题再次出现,将lib放在项目外部并将其作为“外部jar”导入是很有用的。

    此问题列为ADT 14的一部分。以下是来自Android工具项目网站的引用:

    项目未生成,但有错误
    [2011-10-20 23:32:04-MyApp]Dx意外的顶级异常::已添加:
    这是因为未能从中删除以前的库源文件夹 主要项目。顺便说一句,这些联系来源周围的脆弱性 文件夹是我们放弃这种机制的原因之一 (有关更多信息,请访问 ).这个 解决方案是从中删除这些
    \u src
    源文件夹 你的项目。只需右键单击它们并选择
    buildpath>Remove
    从生成路径
    。还应提示您删除链接的对象 你应该做的文件夹。如果没有提示,请将其删除 手动。你可以在这张很棒的照片中看到问题的截图 职位:

    解决方案:


    正如它所说的,解决方案是从项目中删除
    \u src
    源文件夹。您可以通过右键单击它们并选择“生成路径->从生成路径中删除”或在项目属性(Java生成路径->源选项卡)中执行此操作。

    我也遇到了此问题,但上面的任何一项都无法解决此问题:

    • 尝试删除/重新添加具有干净构建的库
    • 尝试删除并重新导入项目
    没有骰子。然而,每次我试图导出到apk时,“转换为Dalvik格式失败,错误为1”都会直视我

    我可以看出问题与ProGuard有关,因为当我在project.properties文件中注释掉这一行时,一切正常:

    proguard.config=proguard.cfg
    

    然而,直到我找到答案,我才能够解决这个问题。显然,ADK/ADT14附带的ProGuard(oops!)版本不正确。我下载了。将android sdk\android sdk\tools\proguard\lib目录内容替换为proguard4.6.zip\proguard4.6\lib(3*.jar文件),重新启动Eclipse并导出到apk再次工作

    你好,我想我会把我的两分钱扔到这里来。当我这么做的时候

    “\u src->从路径中删除”

    然后我清理并重建了它,我可以让它在我的手机上以调试模式运行。我也可以出口它;但前提是我禁用了proguard。当然,我不能让我的代码公开给所有人看。所以这真是太疯狂了。但我终于找到了一种治疗方法,奇怪的是,他们对r12的问题(和修复)和对这一个的问题是一样的

    它位于:[Android SDK安装目录]\tools\proguard\bin\proguard.bat中

    改变

    调用%java\u exe%-jar“%PROGUARD\u HOME%”\lib\PROGUARD.jar%*

    调用%java\u exe%-jar“%PROGUARD\u HOME%”\lib\PROGUARD.jar%1%2%3%4%5%6%7%8%9


    我尝试了很多其他的东西,但这就是我成功的原因。

    这个问题再次出现(第一次通过删除其他答案中提到的_src项来修复)-这次没有要删除的_src文件。该错误与android-support-v4.jar相关,它是链接库项目的一部分,也是主项目本身的一部分

    错误Dx意外的顶级异常: java.lang.IllegalArgumentException:已添加:Landroid/support/v4/content/ModernAsyncTask$workerrunable


    从主项目的构建路径中删除android-support-v4.jar文件后,问题就消失了。不要认为我发现这可能是错误的原因。

    转到项目»属性»Java构建路径»库,删除除“Android X.Y”(在我的例子中是Android 1.5)之外的所有库。单击“确定”。转到项目»清理»清理下面选择的项目»选择您的项目并单击确定。这应该行得通

    也可能您的项目文件夹中有一个JAR文件(我已将Admob JAR文件复制到我的src文件夹中),然后将其添加为Java路径库。它不会显示在PackageExplorer下,因此您不会注意到它,但它会被计数两次,导致可怕的Dalvik错误1


    另一个可能的原因可能是包名冲突。假设您在这个包中有一个包com.abc.xyz和一个名为a.java的类,以及另一个库项目(添加到这个项目的依赖项中)包含相同的com.abc.xyz.a.java,那么您将得到完全相同的错误。这意味着,您对同一个文件A.java有多个引用,无法正确构建它。

    我也有同样的问题,我使用的是ADT 20.0.3

    我采取了一些步骤来解决这个问题

    删除project/lib文件夹中的所有jar,并将它们作为外部jar引用。
    检查项目中的android依赖项/参考库是否存在重复项,

    在项目中使用Sherlock ActionBar库时,我已经解决了这个问题。你可以