当前位置:   article > 正文

Android 源码编译错误_aosp oom错误

aosp oom错误

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的两倍,可以达到最大编译效率)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/993286
推荐阅读
相关标签
  

闽ICP备14008679号