工作中的疑难杂症(编译ninja failed with: exit status 137)

问题:先来看报错提示

起初出现这个问题我就搜索了一下,大家都说。

此问题是因为asop/build/soong/java/config/config.go文件内定义了pctx.StaticVariable("JavacHeapSize", "2048M"),javaheap的大小与ubuntu18系统的内存调度问题有关联,javacheap的值太小会被系统直接killed掉。

解决方法:

        ①配置export MAVEN_OPTS="-Xms4096m -Xmx4096m"//配置为虚拟机内存值的差不多⼀半,可以根据虚 拟机实际内存⼤⼩来配置具体⼤⼩。

1、sudo vim /etc/profile 或 sudo vim ~/.bashrc

2、然后找到export MAVEN_OPTS="-Xms4096m -Xmx4096m "

3、进行配置修改保存退出。

4、必须清空out⽬录再编译(编译后要查看配置是否⽣效,可以查看此⽂件: out/soong/build.ninja 在此⽂件内搜索JavacHeapSize,看此值是否为设置的值

        ②直接sudo vim build/soong/java/config/config.go         

               或sudo gedit build /soong/ java/config/ config.go

pctx.StaticVariable("JavacHeapSize" , "2048M") //把2048修改为4096关闭当前编译Terminal窗⼝, 另新建⼀个Terminal窗⼝再编译即可,不需要删除out再编译。

问题二:

        
        我的Swap满了。在Linux下, SWAP的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。但是一旦swap使用完,操作系统会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存。所以说可能这个原因也会引起报错。

解决方法:

1、获取权限su (输入密码)

2、

dd if=/dev/zero of=/swap bs=32 count=1G

        执行完毕后(比较久)

3、

mkswap /swap

4、

swapon /swap

5、

echo "/swap swap swap sw 0 0" >> /etc/fstab

最后再free -m 查看一下。swap就变多了

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值