背景

在编译 Android 10 代码的时候,OpenJDK发现报错:

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(.., .., 0) failed; error='Not enough space' (errno=12)

原因:运行或编译占用内存巨大的大软件大项目的过程中可能会出现 errno12(申请内存不足)

先执行命令 free -m 查看内存是不是还有 最主要的是 看有没有交换空间 swap (这很重要)

如果没有交换空间 或者交换空间比较小 要先安装交换空间 或者增大空间

下面介绍在Ubuntu 18.04上通过扩大swapfile来增加swap空间以解决这个编译问题

备注:下列操作都需要超级用户权限

参考:

解决

执行命令并观察swap空间是否存在和大小:

# free -h
total used free shared buff/cache available
Mem: 62G 11G 49G 5.3M 800M 49G
Swap: 2.0G 790M 1.2G # swapon -s
Filename Type Size Used Priority
/swapfile file 2097148 806584 -2

删除swapfile(如果之前有)

如果已经存在swapfile(例如:/swapfile),执行下面的命令删除

swapoff /swapfile   #unmount swap文件
rm -rf /swapfile

再执行free和swapon -s ,检查是否依然存在swap空间

创建更大的swapfile

创建一个16G的 /swapfile

dd if=/dev/zero of=/swapfile bs=1M count=16384

其中,16384=16×1024×1M,即创建了一个16G的swapfile。

  • if=指定输入文件名,/dev/zero 代表 空

  • of=指定输出文件名

  • bs=bytes:同时设置读入/输出的块大小为bytes个字节

  • count=blocks:此为块大小,等于以bs为单位指定的空间。

修改权限

chmode 0600 /swapfile

格式化

mkswap /swapfile

到这里,swapfile创建完毕

配置swap文件(如果之前没有)

一般系统都会有挂载swapfile,但是如果没有的话,就需要配置在系统启动时挂载swap空间:

vim /etc/fstab

在最末增加新的一行:

/swapfile   	none 		swap   		 sw 		0 		0

启动swap空间

swapon  /swapfile

可以执行 free -h ; swapon -s,看看swap空间大小

free -h
total used free shared buff/cache available
Mem: 62G 13G 28G 14M 20G 48G
Swap: 15G 0B 15G swapon -s
Filename Type Size Used Priority
/swapfile file 16777212 0 -2

测试

重新编译自己的项目,看看是否解决了OpenJDK的errno=12的问题。

解决:编译安卓源码时 JDK 报错 error='Not enough space' (errno=12)的更多相关文章

  1. vs2010查看quartz.net 2.1.2的源码时其中一报错的解决方法

    问题: 使用vs2010查看quartz.net 2.1.2的源码时,报错: ..\Quartz.NET-2.1.2\server\Quartz.Server\Quartz.Server.2010.c ...

  2. VS反编译查看源码时,会把类实现的所有接口都直接显示

    今天在看ArrayList,发现一个很有意思的问题.从VS里反编译看,ArrayList继承了ICollection. IEnumerable.IList和ICloneable,而IList又继承了I ...

  3. CentOS命令登录MySQL时,报错ERROR 1045 (28000):

    CentOS命令登录MySQL时,报错ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)错误解 ...

  4. 记录编译JDK11源码时遇到的两个问题

    执行make all报错信息: 错误一 /src/hotspot/share/runtime/arguments.cpp:1461:35: error: result of comparison ag ...

  5. 手动编译源码安装包报错 fatal error:cruses.h: no such file or direcrory

    很明显是缺少cruses.h这个文件,但是用yum搜索又搜不到,可能是我的yum源的库包太少的原因吧. 后来多方查找,发现cruses.h这个头文件属于ncurses模块,需要安装ncurses-de ...

  6. 编译Twitter的Heron时一直报错“heron/bazel_configure.py", line 25, in <module> import semver ImportError: No module named semver”如何处理。

    今天编译heron的时候,从官方git到的源码bazel_configure的时候一直报错如下: Traceback (most recent call last): File , in <mo ...

  7. 编译gcc5.1.0时的报错

    编译安装gcc5.1.0时出现如下报错: configure: error: error verifying int64_t uses long long 这是由于没有安装gcc_c++导致的,安装下 ...

  8. Django源码安装xadmin报错Apps aren't loaded yet.

    环境:python2.7, django1.9 1.报错django.core.exceptions.AppRegistryNotReady:Apps aren't loaded yet.如下图所示: ...

  9. SonarQube执行代码分析时,报错ERROR: Unable to create symbol table for : /**/*.java java.lang.IllegalArgumentException: Unsupported class file major version 55

    若要转载本文,请务必声明出处:https://www.cnblogs.com/zhongyuanzhao000/p/11686633.html 起因: 最近正在尝试SonarQube的简单使用,但是当 ...

  10. mysql报错mmap(137428992 bytes) failed; errno 12,Cannot allocate memory for the buffer pool

    mysql以`systemctl start mysqld.service`的方式启动一段时间后发现突然无法启动,尝试重新启动也不能解决问题,排查问题时,先后通过`systemctl status m ...

随机推荐

  1. Oracle、达梦:数据库大小写不敏感,但是又要区分大小写敏感(默认敏感)

    一. 艹,这个需求就很操蛋. 实现 SELECT * FROM T1 WHERE REGEXP_LIKE(field, '.*value.*', 'c'); 在 Oracle 数据库中使用 REGEX ...

  2. linux导出安装包

    linux导出安装包 1 背景 部署企业内网环境,主机无法连通外网.不能直接使用yum install安装程序.针对此种情况有如下两个安装办法 源码安装(需要编译环境,安装复杂,容易出错,不推荐) 使 ...

  3. Android Studio自强迫升级到4.2版本后调试Native项目时总是卡死问题

    原文地址:https://www.zhaimaojun.top/Note/5464968 就在昨天,也就是2021年5月6号,Android Studio强迫用户升级到4.2版本, 原因就是jcent ...

  4. go http请求如果参数中带有"等特殊字符,参数传输可能会出现问题

    编码完整的URL url.QueryEscape(urlStr) 编码完整的URL 如果我们要对完整的 URL 进行编码呢? 就是PHP中 urlencode() 函数的功能. 在 GO 语言下可以直 ...

  5. cesium教程3-加载3dtile模型,并调整位置

    直接上示例代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  6. 数据转换2-无人机航拍倾斜摄影转换成OSGB格式

    首先软件的下载和安装参考下面链接 http://www.xue51.com/soft/53013.html 0.首先打开软件,要打开2个哦. 打数据处理开后台 ContextCapture Engin ...

  7. linux下nginx安装和配置

    一.软件安装 1.环境说明 操作系统:CentOS 7.4 64位 nginx版本:1.16.1 安装日期:2019/10/01 安装用户:root 2.安装运行库 yum -y install gc ...

  8. 7月 Splashtop上线了这些新功能 快来看鸭

    经过我们的攻城狮天天努力,我们的软件又得到了升级和完善,上线了一些有用的新功能和增强功能,快来看看吧. Splashtop已为Splashtop Business Access,Splashtop远程 ...

  9. Django信号与扩展:深入理解与实践

    title: Django信号与扩展:深入理解与实践 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 后端开发 tag ...

  10. tar和zip包加密解密压缩

    1.概述 嗯,最近有些机密文件无处安放,因为太机密了,后来确定加密后放到服务器上.研究一番后发现tar和zip命令都能实现,所以在此记录一下. 压缩:tar -zcvf - ./packageTest ...