Android13 编译ninja failed with: exit status 137

描述

现象很奇怪,主机是ubuntu 18.04, 内存有32G,并且系统中有两份Android13代码, 有一份编译正常,另外一份编译不正常,一度以为是因为下载源码不齐全导致,后面仔细看日志,原来是内存不够,导致OOM-killer杀死了。

现象

分析:

当前界面没有太多可以参考的出错信息,看日志:  out/soong.log,里面没有类似指明哪个代码出错的信息

2024/02/21 19:44:35.273170 build/soong/ui/build/exec.go:74: "dumpvars" finished with exit code 0 (932ms real, 795ms user, 89ms system, 343MB maxrss)


2024/02/21 19:47:22.609247 build/soong/ui/build/exec.go:74: "soong bootstrap" finished with exit code 0 (2m27.983s real, 5m26.38s user, 25.136s system, 22311MB maxrss)
 

2024/02/21 19:48:40.257101 build/soong/ui/build/exec.go:74: "ckati" finished with exit code 0 (40ms real, 5ms user, 2ms system, 362MB maxrss)
 

2024/02/21 19:48:40.281063 build/soong/ui/build/exec.go:64: "ninja" executing "prebuilts/build-tools/linux-x86/bin/nsjail" [-x prebuilts/build-tools/linux-x86/bin/ninja -H android-build --cwd /mnt/4T_disk/jihaoqi/cuttlefish/srd-a13-r74/toptree13 -t 0 -e --proc_rw -u nobody -g nogroup --rlimit_as soft --rlimit_core soft --rlimit_cpu soft --rlimit_fsize soft --rlimit_nofile soft -R / -B /tmp -B /mnt/4T_disk/jihaoqi/cuttlefish/srd-a13-r74/toptree13 -B /mnt/4T_disk/jihaoqi/cuttlefish/srd-a13-r74/toptree13/out --disable_clone_newcgroup -q -- -d keepdepfile -d keeprsp -d stats --frontend_file out/.ninja_fifo droid -j 16 -f out/combined-aosp_cf_x86_64_phone.ninja -o usesphonyoutputs=yes -w dupbuild=err -w missingdepfile=err]
2024/02/21 19:54:04.317254 build/soong/ui/build/exec.go:74: "ninja" finished with exit code 137 (5m24.036s real, 1m58.562s user, 12.006s system, 17723MB maxrss)
2024/02/21 19:54:04.360249 build/soong/ui/build/exec.go:127: ninja failed with: exit status 137
2024/02/21 19:54:04.493015 build/soong/ui/status/critical_path.go:111: critical path took 2m22s
2024/02/21 19:54:04.493026 build/soong/ui/status/critical_path.go:114: elapsed time 8m44s
2024/02/21 19:54:04.493048 build/soong/ui/status/critical_path.go:116: perfect parallelism ratio 27%
2024/02/21 19:54:04.493052 build/soong/ui/status/critical_path.go:120: critical path:
2024/02/21 19:54:04.493057 build/soong/ui/status/critical_path.go:125:     0:14 regenerate globs shard 117 of 1024
2024/02/21 19:54:04.493060 build/soong/ui/status/critical_path.go:125:     2:08 analyzing Android.bp files and generating ninja file at out/soong/build.

发现执行ninja的时候出错,也就是编译的时候出错,前面执行,"dumpvars","ckati"退出码都是0,说明正常,ninja发现退出码是错误码137,通过查询:

Ninja 中的退出状态 137 通常表示构建过程由于内存问题而终止。错误代码 137 通常与 Linux OOM(内存不足)相关,会在系统内存不足时杀死进程。

为了解决这个问题,您可以尝试以下解决方案:

  1. 增加可用内存:如果可能,请为系统分配更多内存或增加执行 Ninja 的进程的内存限制。

  2. 优化资源使用:检查任何不必要的后台进程或消耗过多内存的应用程序并终止它们。关闭所有不必要的浏览器选项卡或同时运行的应用程序。

  3. 修改构建设置:如果您可以控制构建配置,请考虑使用该标志调整 Ninja 中并发作业的数量来减少并行性-j。例如,ninja -j4将其限制为一次只能执行四个作业。

  4. 拆分为较小的构建:如果您的项目很大,请将其拆分为较小的组件并单独构建它们,以减少编译期间的内存使用量。

  5. 升级硬件:如果上述选项均不起作用,并且您经常遇到内存不足问题,则可能需要升级硬件(例如,添加更多 RAM)。

看系统日志/var/log/syslog,也充分说明了这个问题

解决方法

增加swap分区空间;

# 将现有swap移动到主内存,可能需要几分钟
sudo swapoff -a# 创建新的swap文件,bs×count=最后生成的swap大小,这里设置8G
sudo dd if=/dev/zero of=/swapfile bs=1G count=8# 设置权限
sudo chmod 0600 /swapfile# 设置swap
sudo mkswap /swapfile# 打开swap
sudo swapon /swapfile# 检查设置是否有效
grep Swap /proc/meminfo # 或者htop看一下# 设置永久有效
sudo gedit /etc/fstab
# 在末尾行加上 
# /swapfile swap swap sw 0 0

以上解决方法参考: 链接:https://juejin.cn/post/7158741169001168927

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/694153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows Server 2012 安装

1.镜像安装 镜像安装:Windows Server 2012 2.安装过程(直接以图的形式呈现) 2012激活秘钥:J7TJK-NQPGQ-Q7VRH-G3B93-2WCQD

WatiN——Web自动化测试(一)

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

Linux:gitlab创建组,创建用户,创建项目

创建组和项目 让后可以在组里创建一个个仓库 创建成员 我创建个成员再把他分配进这个组里 进入管理员 密码等会我们创建完用户再去配置密码 Regular是普通的用户,只可以正常去访问指定规则的项目 而下面的administrator就是管理员,可以随便进项目&…

基于springboot+vue的B2B平台的购物推荐网站(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

基于Web的网文管理系统

项目:基于Web的网文管理系统 伴随着时代的更替,我国人民的生活水平在不断提高,同时对生活娱乐的需求也在不断加大,我们在日常生活中通常会以多种方式娱乐自己,而阅读网络小说就是其中一种方式。随着计算机技术的成熟&a…

外包实在是太坑了,划水三年,感觉人都废了

先说一下自己的情况,专科生,19年通过校招进入杭州某个外包软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了3年的功…

数据结构第3章 串

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 本篇笔记整理:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 0、思维导图1、基本概念1)主…

vue3 element-plus 省市区选择器组件封装

文章目录 前言一、省市区数据源处理二、AreaSelect省市区选择器组件封装三 、页面使用 前言 vue3封装一个省市区选择器组件,通过element-plus Cascader 级联选择器实现,效果如下: 一、省市区数据源处理 data.js var areaList {province_…

Unity NavMesh 清除不可行走区域

通常场景中物体设置为static或Navigation Static后,打开Navigation使用默认设置烘焙NavMesh,模型顶部和底部会出现蓝色网格,但其中有部分属于不可能到达区域,如下图 本文介绍两种可去掉NavMesh中不需要网格的方法: 方…

idm下载路径在哪 idm下载保存路径怎么设置 IDM下载器 internetdownloadmanager官方版下载 网络加速器

春节(Spring Festival),是中国最隆重最富有特色的传统节日之一。春节期间我们与一家人团聚在一起,其乐融融。2024年春晚已经接近尾声了,很多人已经踏上了返程的路上。在部分地区,如春晚直播过程中或者网络高…

Java学习小记——设计模式

设计模式 设计模式简介Singleton模式Singleton模式简介Singleton的创建双重锁模式Double checked locking作为Java类的静态变量 变继承关系为组合关系组合模式装饰器模式 如何创建对象抽象工厂模式 设计模式简介 设计模式(Design pattern)代表了最佳的实…

css实现梯形

<div class"trapezoid"></div> .trapezoid {width: 200px;height: 0;border-bottom: 100px solid red; /* 定义梯形的底边 */border-left: 50px solid transparent; /* 定义梯形的左边 */border-right: 50px solid transparent; /* 定义梯形的右边 */} …

初识AXI总线

AXI是一种总线类型&#xff0c;具有高传输速率&#xff0c;高带宽&#xff0c;低时延等特性 AXI具有三种类型&#xff1a; 1.AXI_FULL:满足高性能内存映射&#xff08;memory-mapped&#xff09;需求 2.AXI_lite:不可突发传输 3.AXI_stream:面向数据流的传输 AXI的工作方式&a…

连续字母长度 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 给定一个字符串&#xff0c;只包含大写字母&#xff0c;求在包含同一字母的子串中&#xff0c;长度第 k 长的子串的长度&#xff0c;相同字母只取最长的那个子串。…

【C++】初始化列表、static成员、友元、匿名对象、附练习题

文章目录 前言一、构造函数【初始化列表】1.1 构造函数体赋值1.2 初始化列表1.3 explicit关键字 二、static成员2.1 概念2.2 特性 三、友元3.1 友元函数3.2 内部类 四、匿名对象4.1 拷贝对象时的一些编译器优化 五、再次理解类和对象六、练习题6.1 求123...n&#xff0c;要求不…

Apipost多host服务配置如何使用

最近Apipost新增同环境下多host服务的配置功能&#xff0c;本篇文章带来该功能的使用场景及使用方法。 配置方法&#xff1a; 点击右上角眼睛标识进入环境管理 点击添加服务&#xff0c;输入服务名和URL 配置完成后需要在接口目录中选择该目录下需要使用的host服务&#xff0…

搭建SVN服务端和客户端

参考博客&#xff1a; https://zhuanlan.zhihu.com/p/428552058 先下载这两个文件&#xff1a; 链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1_1v_jKm3h7ZDSYEsgYyovA?pwd11ku 提取码&#xff1a;11ku –来自百度网盘超级会员V5的分享 第一个压缩包里有客户端…

[AIGC] JVM内存结构

JVM内存结构 Java虚拟机&#xff08;JVM&#xff09;内存结构是Java内存管理的基础&#xff0c;并且与JVM的运行机制紧密相关。下面是一个JVM内存结构的示意图&#xff1a; JVM内存主要包括以下几个部分&#xff1a; 方法区&#xff08;Method Area&#xff09; 方法区也被称…

计算机网络-广域通信网

1.广域网概念和分类 什么是广域网&#xff1f; 广域网是指长距离跨地区的各种局域网、计算机、终端互联在一起&#xff0c;组成一个资源共享的通信网络。 广域网分为传统广域网和现代广域网。 传 统 广 域 网公共交换电话网PSTN公共数据网X.25帧中继网FR综合业务数据网ISDN…

docker容器常见操作

目录 一、认识容器 1.1、docker用到的内核技术 1.2、namespace 1.3、Control Group 1.4、LXC与docker区别 二、docker环境准备 2.1、安装docker 2.2、docker daemon环境管理 三、镜像、容器和仓库 3.1、镜像常见操作 3.2、配置镜像加速器 命名空间 3.3、非官方镜像仓…