【发布时间】:2011-09-23 04:45:06
【问题描述】:
这是我正在努力解决的构建问题。我正在尝试使用 jdk 1.5 在 Mac OS X 10.6.8 上构建 Android 2.1。 “make”命令运行了一段时间,最后,它说:
The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError: Java heap space
at com.sun.tools.javac.code.Scope.dble(Scope.java:150)
at com.sun.tools.javac.code.Scope.enter(Scope.java:185)
at com.sun.tools.javac.comp.MemberEnter.importAll(MemberEnter.java:129)
at com.sun.tools.javac.comp.MemberEnter.visitTopLevel(MemberEnter.java:504)
at com.sun.tools.javac.tree.Tree$TopLevel.accept(Tree.java:382)
at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:383)
at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:778)
at com.sun.tools.javac.code.Symbol.complete(Symbol.java:355)
at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:612)
at com.sun.tools.javac.comp.Enter.complete(Enter.java:463)
at com.sun.tools.javac.comp.Enter.main(Enter.java:441)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:404)
at com.sun.tools.javac.main.Main.compile(Main.java:592)
at com.sun.tools.javac.main.Main.compile(Main.java:544)
at com.sun.tools.javac.Main.compile(Main.java:92)
at util.build.JavacBuildStep.build(JavacBuildStep.java:69)
at util.build.BuildDalvikSuite.handleTests(BuildDalvikSuite.java:504)
at util.build.BuildDalvikSuite.compose(BuildDalvikSuite.java:170)
at util.build.BuildDalvikSuite.main(BuildDalvikSuite.java:136)
main javac dalvik-cts-buildutil build step failed
make: *** [out/host/darwin-x86/obj/EXECUTABLES/vm-tests_intermediates/tests] Error 1
好像是java堆大小不够。我在谷歌上搜索了这个问题,它给了我几个链接,例如:
- How to deal with "java.lang.OutOfMemoryError: Java heap space" error (64MB heap size)
- Change Java heap size on a Mac
这些页面主要建议在 JVM 选项中添加“-Xmx”选项。我尝试了以下方法: 在“/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0-leopard/Resources/Info.plist”中添加了这一列
虚拟机选项 -Xms1024M -Xmx2048M
(我也尝试设置 VMOptions.x86_64 而不是 VMOptions)。
按照另一个链接 (osdir.com/ml/android-platform/2010-06/msg00097.html),我还在 android 构建目录中的 build/core/definitions.mk 文件中更改了以下行。
$(hide) java -Xmx512M -jar $(HOST_OUT_JAVA_LIBRARIES)/proguard-4.0.1.jar \
到
$(hide) java -Xmx2048M -jar $(HOST_OUT_JAVA_LIBRARIES)/proguard-4.0.1.jar \
以上都没有帮助。我有几个问题:
- 是否可以更改系统范围 Mac OS X 上的 java 堆大小,这是正确的方法吗?如果是这样,我在 Info.plist 文件中所做的更改是否可以实现?
- 还是我必须更改堆大小 专门用于android构建?如果是这样,我应该怎么做?
编辑
只是一个更新:我尝试使用 jdk 1.6 构建 android 3.1,构建运行良好。 (即使没有为 jdk 1.6 设置“-Xmx”选项)。我仍然不知道用 jdk 1.5 构建 2.1 时有什么问题。
【问题讨论】:
-
我们可以看一下make文件吗?
标签: java android macos build out-of-memory