构建 android 源时超出 GC 开销限制
GC overhead limit exceeded when building android source
****[ 35% 11837/33004] build out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack
FAILED:/bin/bash -c
"
(mkdir -p out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/)
&& (java -Xmx3500m -jar out/host/linux-x86/framework/jill.jar --output out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.jack prebuilts/sdk/21/android.jar)
&& (mkdir -p out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res)
&& (unzip -qo prebuilts/sdk/21/android.jar -d out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res)
&& (find out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res -iname \"*.class\" -delete)
&& (JACK_VERSION=2.26.RELEASE out/host/linux-x86/bin/jack @build/core/jack-default.args --verbose error -D jack.import.resource.policy=keep-first -D jack.import.type.policy=keep-first --import out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.jack --import-resource out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res --output-jack out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack)
&& (rm -rf out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res)
&& (rm out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.jack)
"
GC overhead limit exceeded
Try increasing heap size with java option '-Xmx'
Warning: This may have produced partial or corrupted output.
[ 35% 11837/33004] Building with Jack: out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex
FAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex.rsp
Communication error with Jack server (52)
ninja: build stopped: subcommand failed.
build/core/ninja.mk:139: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1****
这是构建过程停止的错误消息,它说尝试使用 java 选项“-Xmx”增加堆大小,但我不知道如何在构建 [=14] 时配置它=]来源。
似乎是 Android makefile 中的错误 - 3500 兆字节确实不足以在 Android 中构建一些 Java 包。它是硬编码值,您可以在 build/core/config.mk 中找到它。现在你可以简单地在本地增加它(但是奇怪的是它没有放在一些环境变量中)。
我已将其增加到 5500 兆字节,而且效果很好。
Google 建议至少 16GB 的 RAM 用于构建源代码,我们已经体验过 Android N 这确实是强制性的。
除非给机器 16 GB 的 RAM,否则源代码构建的可靠性真的很低。您可以尝试 jack-server 和参数的多种配置,但其中 none 可能被证明是可靠的。
这是许多人面临的类似问题的 运行 帖子:-
https://code.google.com/p/android/issues/detail?id=194027
希望对您有所帮助!
****[ 35% 11837/33004] build out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack
FAILED:/bin/bash -c
"
(mkdir -p out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/)
&& (java -Xmx3500m -jar out/host/linux-x86/framework/jill.jar --output out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.jack prebuilts/sdk/21/android.jar)
&& (mkdir -p out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res)
&& (unzip -qo prebuilts/sdk/21/android.jar -d out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res)
&& (find out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res -iname \"*.class\" -delete)
&& (JACK_VERSION=2.26.RELEASE out/host/linux-x86/bin/jack @build/core/jack-default.args --verbose error -D jack.import.resource.policy=keep-first -D jack.import.type.policy=keep-first --import out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.jack --import-resource out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res --output-jack out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack)
&& (rm -rf out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res)
&& (rm out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.jack)
" GC overhead limit exceeded Try increasing heap size with java option '-Xmx' Warning: This may have produced partial or corrupted output. [ 35% 11837/33004] Building with Jack: out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex FAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex.rsp Communication error with Jack server (52) ninja: build stopped: subcommand failed. build/core/ninja.mk:139: recipe for target 'ninja_wrapper' failed make: *** [ninja_wrapper] Error 1****
这是构建过程停止的错误消息,它说尝试使用 java 选项“-Xmx”增加堆大小,但我不知道如何在构建 [=14] 时配置它=]来源。
似乎是 Android makefile 中的错误 - 3500 兆字节确实不足以在 Android 中构建一些 Java 包。它是硬编码值,您可以在 build/core/config.mk 中找到它。现在你可以简单地在本地增加它(但是奇怪的是它没有放在一些环境变量中)。
我已将其增加到 5500 兆字节,而且效果很好。
Google 建议至少 16GB 的 RAM 用于构建源代码,我们已经体验过 Android N 这确实是强制性的。
除非给机器 16 GB 的 RAM,否则源代码构建的可靠性真的很低。您可以尝试 jack-server 和参数的多种配置,但其中 none 可能被证明是可靠的。
这是许多人面临的类似问题的 运行 帖子:- https://code.google.com/p/android/issues/detail?id=194027
希望对您有所帮助!