Android13 编译ninja failed with: exit status 137

这篇具有很好参考价值的文章主要介绍了Android13 编译ninja failed with: exit status 137。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

描述

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

现象

Android13 编译ninja failed with: exit status 137,Android系统源码调试和优化,Android ROM定制,Android系统底层,Android源码编译出错

分析:

当前界面没有太多可以参考的出错信息,看日志:  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,也充分说明了这个问题

Android13 编译ninja failed with: exit status 137,Android系统源码调试和优化,Android ROM定制,Android系统底层,Android源码编译出错

解决方法

增加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文章来源地址https://www.toymoban.com/news/detail-835792.html

到了这里,关于Android13 编译ninja failed with: exit status 137的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python入门:cl.exe‘ failed with exit status 2错误通用解决方案

    如标题所示的错误想必使用python的人都不陌生,但该问题的产生有多种情况,由于安装不同软件导致不同的后续错误,网络上的回答也是五花八门,因此这里有必要将这个简单问题写一篇文章。 error: Microsoft Visual C++ 14.0 or greater is required. Get it with \\\"Microsoft C++ Build Tools\\\": https:

    2024年02月13日
    浏览(41)
  • Go编译报错 link: running gcc failed: exit status 1(已解决)

    背景   在对一个开源的Go程序二次开发 重新编译时 , 报错截图如下 报错文字如下:关键信息  link: running gcc failed: exit status 1 查看了Go的GitHub上的issue 记录该问题  https://github.com/golang/go/issues/43996 问题原因 : 编译器或链接器版本可能不兼容或过时 我的原因可能是因为没有

    2024年03月12日
    浏览(41)
  • Android12源码编译报错ninja: build stopped: subcommand failed.解决

    虚拟机:wsl 2.0 Ubuntu18.04 虚拟机配置:8G内存,1T存储 软件版本:安卓系统目前最高版本是Android S,也就是Android 12 beta版本源码,无任何修改 报错内容:编译至54%时,ninja编译中断,ninja: build stopped: subcommand failed. 报错后尝试多次增量编译,始终在54%作用报错,报错内容一致。

    2024年01月19日
    浏览(47)
  • IOS编译出现Command PhaseScriptExecution failed with a nonzero exit code

    在 Github 上下载了一个用 SwiftUI 开发的仿微信Demo.用Xcode15运行报以下错误. 首先我们得找到具体的错误,这报错太抽象啦. 那我们要在哪里看到具体的报错信息呢? 通过在 Stackoverflow 上搜索发现,点击导航栏最右边的图标 选中最近的build,在右边就能看到具体详细的编译错误信

    2024年01月24日
    浏览(37)
  • 出现错误“subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1”解决方法

    2023.8.1更新:各个库的版本更新可能会导致这里的方法不可用,大家如果遇到这个错误,也可以尝试安装ninja,应该也能解决 这个错误的出现主要是因为pytorch版本大于1.5,可行的解决方法有两个: 1. 将pytorch版本降到1.5以下; 2. 将setup.py中的“cmdclass={\\\'build_ext\\\': BuildExtension}”这

    2024年02月13日
    浏览(34)
  • Android.mk编译错误 FAILED: ninja: unknown target ‘MODULES-IN-packages-apps-XXXX‘

    Android源码中编译app时报如下错误: [ 91% 205/223] including system/sepolicy/Android.mk ... system/sepolicy/Android.mk:57: warning: BOARD_PLAT_PUBLIC_SEPOLICY_DIR has been deprecated. Use SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS instead. system/sepolicy/Android.mk:62: warning: BOARD_PLAT_PRIVATE_SEPOLICY_DIR has been deprecated. Use SYSTEM_EXT_PRIVATE_SEPO

    2023年04月17日
    浏览(52)
  • 解决 Application xxx failed 2 times due to AM Container for xxx exited with exitCode: 13 问题

    我安装的是Hadoop3.3.4,使用的是Java17,Spark用的是3.3.2 启动完成后,我在控制台输入如下命令 出现报错信息 进入spark下的sbin目录,输入下面的命令 我的在 /opt/spark/conf 这个路径下 找到这里,把红框的端口号进行修改 与hadoop下的core-site.xml文件中的fs.defaultFS端口号一致 修改完后

    2024年02月03日
    浏览(43)
  • iOS 编译报错:Xcode Command PhaseScriptExecution failed with a nonzero exit code 解决方案

    iOS 报错“ Xcode Command PhaseScriptExecution failed with a nonzero exit code ” 解决方案 问题:xcode版本差异造成的不兼容。低版本xcode不兼容高版本xcode。 解决方案1: 在Xcode菜单栏选择File - Workspace Setting - Build System 选择Legacy Build System 重新运行 解决方案2: 将低版本xcode升级为最新版本,

    2024年02月13日
    浏览(41)
  • iOS Xcode版本14.2 编译成功 打包报error build: Command PhaseScriptExecution failed with a nonzero exit code

    iOS Xcode版本14.2 编译成功 打包报error build: Command PhaseScriptExecution failed with a nonzero exit code 上面是我打包报错的详细信息,我发现报错的主要是高德地图的三方库,我就删除了报错的三方库,同时删除 pods文件夹 和 .lock文件 重新pod install 之后三方库不再报错,只报错error build:

    2024年02月04日
    浏览(35)
  • ‘git clone‘ failed with status 128

    download-git-repo报错 Response code 404 (Not Found) 这个错误,基本锁定是链接配置有误 \\\'git clone\\\' failed with status 128 ,git的凭证有问题(下面有修改方法),或者地址解析错误(尤其是局域网网址) connect ETIMEDOUT 一般是网络超时,可以直接再试一次,不行就检查下面注意事项 尽量不要

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包