Android 源码编译错误

来源:互联网 发布:淘宝商城女童套装 编辑:程序博客网 时间:2024/06/05 09:39

Android 源码编译错误

从Android7.0开始,编译AOSP源码时,默认使用jack工具链,以加快编译速度,然后并没有什么卵用,jack工具链bug多多,而且非常耗费内存,编译过程中经常出现OOM的错误,AOSP源码组估计知道这个事儿,特意在官网上写明了这一错误的处理方式,大致如下:

Jack 问题排查
如果您的计算机在编译期间无响应,或者如果 Jack 编译因“Out of memory error”(内存不足错误)而失败
您可以通过修改 $HOME/.jack 并将 SERVER_NB_COMPILE 改为较低的值来减少同时进行的 Jack 编译的数量,以针对所遇到的问题予以改善。

网上出现比较多的解决方法是:

1、修改Jack的配置文件prebuilts/sdk/tools/jack-admin  这是一个管理Jack的shell脚本,找到start-server函数,直接修改其启动参数,由原来的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" 此时Jack服务器仍然在后台执行,所以我们需要将其停止,然后重启启动(make会自动启动Jack服务器)才能使得修改后的参数生效。  我们执行下面的命令此时Jack服务器仍然在后台执行,所以我们需要将其停止,然后重启启动(make会自动启动Jack服务器)才能使得修改后的参数生效。  我们执行下面的命令:#先停止服务./prebuilts/sdk/tools/jack-admin stop-server#重新开始服务./prebuilts/sdk/tools/jack-admin start-server然后接着执行 make -jN 命令(N的数字,视PC的CPU而定,一般是CPU core的两倍,可以达到最大编译效率)
原创粉丝点击