Android 源码编译错误
2017-09-21 17:38
393 查看
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的两倍,可以达到最大编译效率)
相关文章推荐
- ubuntu16.04 编译android 源码出现的错误
- android源码使用proguard混淆编译及错误总结
- android内核源码编译个人方法和错误记录
- Android 源码编译时collect2: ld terminated with signal 9 [Killed] 错误的处理
- Android源码编译make的错误处理
- Android 源码编译错误
- 关于Android源码中编译C模块的错误
- 在Mac OS 10.12 编译Android源码:错误小结
- Android 源码编译make的错误处理
- Android 源码编译错误:/usr/bin/ld: cannot find -lz
- 编译Android 4.0源码错误整理
- android 4.0.1源码编译,学习错误解决
- Android源码编译make的错误处理
- android源码编译常见错误
- 编译android5.1 源码 遇到错误undefined reference to 'register_android_system_OsConstants(_JNIEnv*)'
- 编译android源码 lunch错误
- android 编译源码错误
- android源码编译错误
- 编译android源码时,jack server 出现out of memory error 错误的解决方法
- android源码使用proguard混淆编译及错误总结