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…

单例设计模式Singleton

1.模式定义 保证一个类只有一个实例,并且提供一个全局访问点 2.应用场景 重量级的对象,不需要多个实例,如线程池,数据库连接池。 2.1 源码中的应用 // Spring & JDK java.lang.Runtime org.springframework.aop.framework.Pro…

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

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

游戏开发速成入门

0,前言 两计算机专业菜鸡在大一到大二期间玩儿的游戏开发这一块的碰壁经验,从建模到游戏开发到c开发过渡的通俗基础参考,单纯玩玩儿可以参考本文Hah.。 by jzy/hzh 1,BLENDER 1.1流程推荐&#x…

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

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

线阵相机参数介绍---变频参数控制

变频器介绍 变频器功能的目的在于对外部输入信号进行运算处理,以达到理想的行频值。该功能主要是为了解决信号超行频,图像拉伸压缩等问题。 输入信号处理过程: 输入信号:允许出发相机信号的频率f与所要求输入信号的频率F不同 …

基于Web的网文管理系统

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

vue3 #组件通信#父传子#defineProps

//在父组件中 <template> <h1>父组件</h1> <Son :car"car" :money"money" /> </template> <script setup lang"ts"> import { ref } from vue import Son from ./components/Son.vue const money ref…

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

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

数据结构第3章 串

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

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

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

技术应用:C# System.Data.DataTable().Compute 基本用法

引言&#xff1a; 在 C# 编程中&#xff0c;处理和计算数据是一个常见而重要的任务。而 System.Data.DataTable().Compute 方法作为 DataTable 类中的一项强大功能&#xff0c;能够帮助我们在 DataTable 对象中执行各种数据计算操作。本文将深入介绍 DataTable().Compute 方法的…

Unity NavMesh 清除不可行走区域

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

编写代码中常见问题汇总(JavaScript)

1.控制台出现"undefined"报错 "undefined"是一个Javascript的错误报错&#xff0c;表示变量或属性未定义或未赋值。 这个报错通常出现在以下情况下&#xff1a; 尝试访问未声明的变量或函数。尝试访问未定义的对象属性。尝试调用未定义的函数。变量或属…

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

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

Java学习小记——设计模式

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

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; /* 定义梯形的右边 */} …

已解决】wangEditor报错$attrs is readonly.$listeners is readonly

【已解决】wangEditor报错$attrs is readonly.$listeners is readonly 在vue.config.js中加上如下代码 const { defineConfig } require(vue/cli-service) const path require(path); function resolve(dir) { //报resolve错的话加上这个方法return path.join(__dirname, d…

初识AXI总线

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