33

我正在尝试在 Android 上使用SmugFig SmugMug API。我想它是为 J2SE 设计的,所以我不确定它甚至可以在 Android 上运行,但我认为它值得尝试,而不是尝试创建自己的 API。

但是,当我加载项目时,出现以下错误:

Conversion to Dalvik format failed: Unable to execute dex: null

它没有说明它在哪个包上失败,只是“Android 打包问题”,但在我添加 SmugFig 之前它没有这样做,它是依赖 JARS 到构建路径。

我应该去哪里看?或者这主要是我认为它不适用于那些库?

4

14 回答 14

41

我发现一个博客条目说将 eclipse.ini 中分配的内存增加到这个:-Xms128m -Xmx512m 或更高的东西,但这对我没有用。

但是,我发现另一个帖子建议执行 Project > Clean 并为我修复了它。我认为它发生在您关闭 Eclipse 而没有先关闭模拟器时。很蹩脚的虫子。今天早上花了几个小时寻找解决方案...... grrrrrrr :-(

于 2010-05-05T15:56:39.203 回答
16

转到项目»属性»Java构建路径»库并删除除“Android XY”之外的所有内容(在我的情况下为Android 1.5)。单击确定。转到项目»清理»清理下面选择的项目»选择您的项目并单击确定。那应该行得通。

您也可能在项目文件夹中的某个位置有一个 JAR 文件(我已将 Admob JAR 文件复制到我的 src 文件夹中),然后将其添加为 Java 路径库。它不会出现在 Package Explorer 下,所以你不会注意到它,但它确实被计算了两次,导致可怕的 Dalvik 错误 1。

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

于 2013-02-26T07:23:49.943 回答
6

在 Eclipse DDMS 更新 8.0.0 与 Android 2.3 一起发布之后,这个错误突然出现了。

以上建议都没有帮助,但事实证明问题的根源是一个引用项目(服务器和客户端之间共享的一些类)。

一旦我删除了项目引用并构建并包含了曾经引用过的项目的 jar,问题就不复存在了。

似乎在 DDMS 8.0.0 中出现了一些带有引用项目的流氓行为。

于 2010-12-06T21:33:29.227 回答
5

对我有用的是删除 android.jar 引用

配置构建路径 -> Java 构建路径 -> 库

留下 Android 3.0 库参考。

于 2011-09-05T06:17:17.870 回答
4

这仅仅是因为一些 JAR 文件占用的堆大小......可以手动删除......

否则最好的选择是修改eclipse文件夹中的Eclipse.ini文件.....

将 -Xmx1024m 添加到文件中以使内存大小为 1 GB ...它肯定会工作.....

于 2011-06-29T09:53:33.373 回答
3

帮助我消除此错误的步骤

  1. 删除用户库(外部库)。
  2. 清理项目
  3. 再次添加外部库
  4. 构建项目
  5. 运行项目。

希望这对您有所帮助。谢谢。

于 2013-04-18T08:00:36.163 回答
2

http://groups.google.com/group/android-developers/browse_thread/thread/3911749addce534d

他们正在努力推动 2.3 的修复

编辑:这已为 2.3 修复,通过 eclipse 获取更新。

于 2010-12-07T01:04:55.783 回答
2
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-XX:MaxPermSize=512m
-vmargs
-Xms512m
-Xmx1024m

为我工作https://groups.google.com/forum/?fromgroups=#!topic/phonegap/yWePvssyiLE

于 2013-04-29T10:29:17.207 回答
1

确保您没有在 jar 和 eclipse 中引用同一个项目。例如,您在 Eclipse 中有一个名为 myproject 的项目。您的 android 项目同时引用了 myproject 项目和从中生成的 jar。当您尝试对来自 myproject 和 myproject.jar 的生成类进行 dex 时,这将给出一个错误

于 2010-12-10T13:34:10.300 回答
1

只有这样才能解决我的问题.Project > Clean

于 2012-09-07T07:26:04.303 回答
0

对于使用的项目New Relic

通过 Project r'click -> 下的“更新新遗物”更新新遗物Update New Relic。这对我有用。

于 2014-11-04T20:08:33.847 回答
0

在这里,他们建议这些错误是由巨大的 .java 文件引起的。

我遇到了同样的问题,增加分配的内存对我有用。

于 2010-07-05T10:37:36.987 回答
0

我帮助删除 /home/user/.android 文件夹。操作系统:Debian Wheezy 32 位

于 2011-05-27T07:36:15.393 回答
0

绝对没有一个前面提到的“修复”对我有用,这不足为奇,因为它们甚至没有从一开始就解决问题。

该错误本身源于与 Proguard 的冲突。这是错误报告:http ://code.google.com/p/android/issues/detail?id= 18359 要修复它,您只需手动更新 Proguard:http: //sourceforge.net/projects/ proguard/files/latest/download?source=files

于 2012-02-17T06:45:56.490 回答