编译中出现报错:
报错原信息:
[ 2% 815/30212] Building with Jack: target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex
FAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex.rsp
Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by android-jack-team@google.com)).
GC overhead limit exceeded.
Try increasing heap size with java option '-Xmx<size>'.
Warning: This may have produced partial or corrupted output.
[ 2% 815/30212] Building with Jack: out/target/common/obj/JAVA_LIBRARIES/mp4parser_intermediates/classes.jack
ninja: build stopped: subcommand failed.
make: *** [ninja_wrapper] Error 1
原因是因为电脑内存不足的问题
解决方法:
从上面的错误信息中我们可以看到
Try increasing heap size with java option '-Xmx<size>'.
我们对Android_Src/prebuilts/sdk/tools/jack-admin文件进行如下修改:
JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"
改为
JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME"
添加-Xmx4096m参数
改完之后进入源码根目录依次执行下面两条语句重启服务jack-admin服务
./prebuilts/sdk/tools/jack-admin stop-server 关闭服务
./prebuilts/sdk/tools/jack-admin start-server 打开服务
重启完jack-admin服务后,此时再重新执行编译就可以通过了。