【问题标题】:Android - Conversion to Dalvik format failed: Unable to execute dex: Java heap space [duplicate]Android - 转换为 Dalvik 格式失败:无法执行 dex:Java 堆空间 [重复]
【发布时间】:2011-11-08 02:12:29
【问题描述】:

当我尝试在我的 android 设备上运行我的项目时,我收到错误 "Conversion to Dalvik format failed: Unable to execute dex: Java heap space"。我已从另一台运行正常的计算机导入项目。

我去过Conversion to Dalvik format failed: Unable to execute dex: Java heap space 并尝试增加-XmsAm-XmxBm,但随着我增加值,问题仍然存在,直到Eclipse 无法启动或我收到一条错误消息:"Dex Loader] Unable to execute dex: Cannot handle conversion to jumbo index!"

有人知道任何替代解决方案吗?

编辑:我尝试创建一个新项目并从导入的项目中复制/粘贴所有文件,但现在出现了一个新错误。当我运行它时,我得到了错误:"Installation error: INSTALL_FAILED_DEXOPT"

Logcat 是这样说的:

11-08 15:14:31.317: E/dalvikvm(3041): ERROR: Can't byte swap: bad dex version (0x30 33 36 00)
11-08 15:14:31.317: E/dalvikvm(3041): ERROR: Byte swap + verify failed
11-08 15:14:31.317: E/dalvikvm(3041): Optimization failed
11-08 15:14:31.325: E/installd(1059): dexopt failed on '/data/dalvik-cache/data@app@vmdl28652.tmp@classes.dex' res = 65280
11-08 15:14:33.083: E/AndroidRuntime(3035): ERROR: thread attach failed

是否有人可能熟悉此错误,或者我应该为它打开一个新线程?

【问题讨论】:

  • 您的项目是否包含一些第三方 .jar 文件?并且是和 android 项目不是另一台计算机吗?
  • 可以,但不再使用它们。我从构建路径和新笔记本电脑中删除了它们,现在在 logcat 中出现了一个额外的 UID 错误:11-09 11:27:01.380: E/PackageManager(1280): Package com.android.Project has mismatched uid: 10073在磁盘上,在设置中为 10089
  • 你是复制项目目录还是只复制源文件?如果您复制了目录,您可能已经复制了与旧计算机上的配置相关的文件。我会在您的新计算机上创建一个新项目并仅复制源代码。
  • 我确实先直接复制了项目。我刚刚开始了一个新项目,复制了 AndroidManifest.xml 内容,一些字符串和图像,然后使用默认活动类运行项目,现在收到此错误:# Java Runtime Environment 检测到致命错误: # # 内部错误 (classFileParser.cpp:3470), pid=4980, tid=2944 # Error: ShouldNotReachHere() # JRE version: 7.0_01-b08 # Java VM: Java HotSpot(TM) Client VM (21.1-b02 mixed mode windows-x86 ) # 无法写入核心转储。默认情况下,Windows 客户端版本不启用小型转储
  • 我只复制源代码。从头开始重新开始其他一切。我知道这是一种痛苦。

标签: android


【解决方案1】:

这可以通过增加您的 Android SDK 中 dx.jar 的堆内存大小来解决。

这可以通过编辑dx.bat文件adt-bundle-windows-x86_64-20130729\adt-bundle-windows-x86_64-20130729\sdk\build-tools\android-4.3\dex.bat并将其set defaultXmx=-Xmx1024M值更新为set defaultXmx=-Xmx1624M来完成

【讨论】:

    【解决方案2】:

    我在 Admob 分机上遇到了这个问题。罐。他们有新的谷歌库和旧的 SDK。我检查了一下,即使我发誓我删除了它,旧的外部 JAR 仍然在那里。删除旧 JAR 对我有用。在 Eclipse 中:

    右击项目进入属性,点击java build path,然后是libraries,然后点击列表中的admob选项,点击remove。

    如果您单击 android 而不是 java build path,您应该会看到 google play services 项目出现在 library 下,并且该框未选中。

    【讨论】:

      【解决方案3】:

      尝试右键单击项目名称>源>清理... 我希望它对你有用。

      【讨论】:

      • 很遗憾这不起作用。
      猜你喜欢
      • 2011-08-22
      • 2011-02-10
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多