转换为Dalvik格式失败,导出时Android中出现错误1(adt 21)

Spe*_*cer 13 android

我知道这个问题的一种形式是存在的,但我找不到任何适合我的情况的东西,所以在这里.

我的应用程序在模拟器中进行测试时编译并运行完美,但是当我尝试导出已签名的apk时,我得到了Conversion to Dalvik format failed with error 1.Eclipse错误日志显示此堆栈跟踪:

com.android.ide.eclipse.adt.internal.build.DexException: Conversion to Dalvik format failed with error 1
at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:751)
at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:269)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(ExportWizard.java:296)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(ExportWizard.java:233)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(ExportWizard.java:218)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Run Code Online (Sandbox Code Playgroud)

我没有其他人似乎有的命名冲突(至少它在错误中没有这么说),我很难过为什么它在模拟器中运行,但我无法导出.

顺便说一句,我也没有使用ProGuard.

Spe*_*cer 27

看起来ADT 21在您的bin中添加了一个名为dexedLibs的文件夹,它应该通过将jar和库放在预编译的dex代码中来加速部署.我在那里有两个版本的支持库,所以我删除了文件夹中的所有文件并重新构建并且它有效.如果我尝试使用那里的任何文件构建,那么构建失败,所以我必须在每次导出之前删除它们.我正在使用ActionBar Sherlock,这可能与dexedLibs相冲突,因为除非文件夹最初为空,否则它不会显示在那里.

编辑:当问题首次出现时,我一直在使用ActionBarSherlock,但最近已切换到ActionBarCompat.从交换机开始,我不再需要在导出时删除dexedLibs文件夹.看起来可能是ActionBarSherlock的责任,但我无法确定.

  • 解决了!!在导出apk之前,只需从`bin`文件夹中删除`dexedLibs`文件夹 (8认同)

anj*_*eya 12

转到项目并取消选择"自动构建".然后清理项目并Build all.为我工作导出已签名的应用程序包