Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >构建AOSP 10时的Java OutOfMemoryError

构建AOSP 10时的Java OutOfMemoryError
EN

Stack Overflow用户
提问于 2020-02-29 11:11:52
回答 1查看 7.4K关注 0票数 4

我想从源代码构建Android 10,并遵循官方指令。为了开始,我想简单地为模拟器构建它。但是,构建始终失败,我得到了以下错误:

代码语言:javascript
运行
AI代码解释
复制
[11177/12864] rm -rf "out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/out" "out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/srcjars" "out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/stubsDir" && mkdir -p "out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/out" "out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/srcjars" "out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/stubsDir" && out/soong/host/linux-x86/bin/zipsync -d out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/srcjars -l out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/srcjars/list -f "*.java" out/soong/.intermediates/frameworks/base/framework-javastream-protos/gen/frameworks/base/core/proto/android/privacy.srcjar [...]
FAILED: out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/api-stubs-docs-stubs.srcjar out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/api-stubs-docs_api.txt out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/api-stubs-docs_removed.txt out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/private.txt out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/api-stubs-docs_annotations.zip out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/api-versions.xml out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/api-stubs-docs_api.xml out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/api-stubs-docs_last_released_api.xml
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.base/java.nio.HeapCharBuffer.<init>(HeapCharBuffer.java:68)
    at java.base/java.nio.CharBuffer.allocate(CharBuffer.java:341)
    at java.base/java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:794)
    at java.base/java.nio.charset.Charset.decode(Charset.java:818)
    at com.intellij.openapi.fileEditor.impl.LoadTextUtil.convertBytes(LoadTextUtil.java:640)
    at com.intellij.openapi.fileEditor.impl.LoadTextUtil.getTextByBinaryPresentation(LoadTextUtil.java:555)
    at com.intellij.openapi.fileEditor.impl.LoadTextUtil.getTextByBinaryPresentation(LoadTextUtil.java:545)
    at com.intellij.openapi.fileEditor.impl.LoadTextUtil.loadText(LoadTextUtil.java:531)
    at com.intellij.openapi.fileEditor.impl.LoadTextUtil.loadText(LoadTextUtil.java:503)
    at com.intellij.mock.MockFileDocumentManagerImpl.getDocument(MockFileDocumentManagerImpl.java:53)
    at com.intellij.psi.AbstractFileViewProvider.getDocument(AbstractFileViewProvider.java:194)
    at com.intellij.psi.AbstractFileViewProvider$VirtualFileContent.getText(AbstractFileViewProvider.java:484)
    at com.intellij.psi.AbstractFileViewProvider.getContents(AbstractFileViewProvider.java:174)
    at com.intellij.psi.impl.source.PsiFileImpl.loadTreeElement(PsiFileImpl.java:204)
    at com.intellij.psi.impl.source.PsiFileImpl.calcTreeElement(PsiFileImpl.java:709)
    at com.intellij.psi.impl.source.PsiJavaFileBaseImpl.getClasses(PsiJavaFileBaseImpl.java:66)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$Companion.findClassInPsiFile(KotlinCliJavaFileManagerImpl.kt:250)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$Companion.access$findClassInPsiFile(KotlinCliJavaFileManagerImpl.kt:246)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findPsiClassInVirtualFile(KotlinCliJavaFileManagerImpl.kt:216)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.access$findPsiClassInVirtualFile(KotlinCliJavaFileManagerImpl.kt:47)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$findClasses$1$$special$$inlined$forEachClassId$lambda$1.invoke(KotlinCliJavaFileManagerImpl.kt:155)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$findClasses$1$$special$$inlined$forEachClassId$lambda$1.invoke(KotlinCliJavaFileManagerImpl.kt:47)
    at org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndexImpl$traverseDirectoriesInPackage$1.invoke(JvmDependenciesIndexImpl.kt:77)
    at org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndexImpl$traverseDirectoriesInPackage$1.invoke(JvmDependenciesIndexImpl.kt:32)
    at org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndexImpl.search(JvmDependenciesIndexImpl.kt:131)
    at org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndexImpl.traverseDirectoriesInPackage(JvmDependenciesIndexImpl.kt:76)
    at org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndex$DefaultImpls.traverseDirectoriesInPackage$default(JvmDependenciesIndex.kt:35)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$findClasses$1.invoke(KotlinCliJavaFileManagerImpl.kt:151)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl$findClasses$1.invoke(KotlinCliJavaFileManagerImpl.kt:47)
    at org.jetbrains.kotlin.util.PerformanceCounter.time(PerformanceCounter.kt:91)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findClasses(KotlinCliJavaFileManagerImpl.kt:147)
    at com.intellij.psi.impl.PsiElementFinderImpl.findClasses(PsiElementFinderImpl.java:45)

在寻找解决方案时,我只发现与jack相关的问题。据我所知,杰克是不再在最近的构建中使用。此外,我试图减少使用m -j1构建线程的数量,但没有成功。

下面是关于我的设置的一些信息:4核心CPU,8GB内存

代码语言:javascript
运行
AI代码解释
复制
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=10
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-142-generic-x86_64-Ubuntu-14.04.6-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=QQ1D.200205.002
OUT_DIR=out
============================================
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-01 03:28:36

经过一番研究,我找到了一个解决办法。在构建过程中,调用/prebuilts/jdk/jdk9/linux-x86/bin/java时不使用-Xmx选项。打字时

代码语言:javascript
运行
AI代码解释
复制
$ /prebuilts/jdk/jdk9/linux-x86/bin/java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize'

在命令行中,我发现最多只允许2GB的堆。

解决方案

因为我不知道在哪个文件中调用java,所以我只使用一个环境变量将堆大小设置为4GB:

代码语言:javascript
运行
AI代码解释
复制
$ export _JAVA_OPTIONS="-Xmx4g"

Java将自动选择这个选项。

(可选)I还将交换空间的大小从8 GB增加到了20 GB。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60468693

复制
相关文章
剖析Java OutOfMemoryError异常
在JVM中,除了程序计数器外,虚拟机内存中的其他几个运行时区域都有发生OutOfMemoryError异常的可能,本篇就来深入剖析一下各个区域出现OOM异常的情形,以及如何解决各个区域的OOM问题。
王金龙
2020/03/04
2K0
Java.lang.OutOfMemoryError处理
此错误对于新手做项目的时候经常会发生,而且不容易处理 默认情况下,每个android程序的dailvik虚拟机的最大堆空间大小为16M 当加载的图片太多或图片过大时经常出现OOM问题 而出现此类问题最常见的情况就是当我们使用BitMap类的时候 网上解决办法很多,这里贴出感觉最有用的一种解决办法 解决办法: 1 public Bitmap matrixBitmapSize(Bitmap bitmap, int screenWidth, 2 int screenHight) {
听着music睡
2018/05/18
7130
OutOfMemoryError异常----Java堆溢出
在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下面都叫OOM)异常的肯能,下面就通过一些实例来验证异常发生的场景。 在下面举的例子中,在注释中会设定一些虚拟机的参数,在”VM Args”后边,如果你是用控制台命令来执行的程序,直接把这些参数放到Java命令之后就行,如果用的开发工具,Eclipse IDE,才Debug/Run页签中设置。
令仔很忙
2018/09/14
6390
OutOfMemoryError异常----Java堆溢出
java.lang.OutOfMemoryError: Java heap space
这个服务本来是rpc提供方,但是消费端经常用着用着就说没有provider,期初没注意同事说重启下就好了,确实管用,但后来能用时间越来越少,重启后只能管几分钟,于是我不偷懒了,看下这个服务有什么问题,好家伙~一看原来是内存溢出,导致了rpc的socket链接都已经关闭了。报错如下:
MickyInvQ
2020/12/31
1.2K0
java.lang.OutOfMemoryError: PermGen spacejava.lang.OutOfMemoryError: PermGen space
-Xms800m -Xmx1024m -XX:PermSize=512M -XX:MaxNewSize=256m -XX:MaxPermSize=512m -Dantx.properties=/Users/jack/aipqa/swork.info/swork.info.server/antx.properties -Dpandora.location=/Users/jack/soft/taobao-tomcat-7.0.68/deploy/taobao-hsf.sar
一个会写诗的程序员
2018/08/17
8000
xlsx的OutOfMemoryError
将数据读入或者导出到xlsx文件的时候,常常需要循环写出, 如 res <- read.xlsx("edgeR_DEgenes.xlsx",1) write.xlsx(data_vitro_down, file="edgeR_DEgenes.xlsx", sheetName = i, append=TRUE, row.names=FALSE) 可能会出现内存不足的报错: Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, : java.lang.OutOfMemoryError: Java heap space 一般只需要重启R或者Rstudio,然后再读入R包前加上options( java.parameters = "-Xmx5000m")就可以,但是一定要在library之前加,如果library之后加是没有用的。
生信编程日常
2020/04/01
9810
Java内存溢出OutOfMemoryError的产生与排查
在java的虚拟机异常中,有两个异常是大家比较关心的,一个是StackOverflowError,另一个是OutOfMemoryError。今天我们就来看看OutOfMemoryError是怎么产生的,以及如何去排查这个异常。
小忽悠
2020/06/22
2.9K0
Java内存溢出OutOfMemoryError的产生与排查
aosp编译
aosp “Android Open Source Project”的缩写。中文意为”Android 开放源代码项目”。
tea9
2023/03/08
2.5K0
aosp编译
tomcat OutOfMemoryError
Exception in thread "Timer-1" java.lang.OutOfMemoryError: PermGen space
阳光岛主
2019/02/19
1.2K0
tomcat OutOfMemoryError
Java内存溢出OutOfMemoryError的产生与排查
在java的虚拟机异常中,有两个异常是大家比较关心的,一个是StackOverflowError,另一个是OutOfMemoryError。今天我们就来看看OutOfMemoryError是怎么产生的,以及如何去排查这个异常。
小忽悠
2020/06/19
8850
Java内存溢出OutOfMemoryError的产生与排查
xmind报错java.lang.OutOfMemoryError
在使用Xmind打开文件时,不断地增加内容,会遇到这样的错误:java.lang.OutOfMemoryError,因为Xmind是java编写的,这个错误意思是分配的空间不够了,可以修改Xmind安装的根目录到XMind.ini文件,修改-Xmx的值,调大一点,最大适你的电脑而定:
青山师
2023/05/05
4320
Android Studio 导入 AOSP 源码
有了 AOSP 源码,接下来就是如何看了,可以直接文本看,可以用 Source Insight,我当然选择 Android Studio,Android Studio 是我熟悉且十分强大的工具。问题来了,如何将 AOSP 源码导入 Android Studio?
吴小龙同學
2019/12/11
3.2K0
关于jboss的线程问题+java.lang.outofmemoryError
    近日来,用Jmeter做压力测试。发现,每台客户机使用800个线程组压力倍增。昨天的测试,到了今天下午都没有跑完。 仔细观察了下Jboss的错误日志,发现,jboss已经宕机了。     本身后台的环境是使用LVS作的负载均衡。目前apache负载均衡器方面,已经没有什么问题了。修改的线程组达到1000。据资料显示,apache默认的线程数是60,最高能达到1000 在http.conf中,加入下面模块: <IfModule mpm_winnt.c> ThreadsPerChild
用户1154259
2018/01/17
6550
Java_异常_05_ OutOfMemoryError: Java heap space
修改 TOMCAT_HOME/bin/catalina.sh,在  echo "Using CATALINA_BASE:   $CATALINA_BASE"  上面加入以下行:
shirayner
2018/08/10
3110
Java_异常_05_ OutOfMemoryError: Java heap space
Java_异常_04_ OutOfMemoryError系列
二、参考资料 1.铁猫 OutOfMemoryError系列(1): Java heap space OutOfMemoryError系列(2): GC overhead limit exceeded OutOfMemoryError系列(3): Permgen space OutOfMemoryError系列(4): Metaspace
shirayner
2018/08/10
1920
实战:OutOfMemoryError 异常(一) -- Java 堆溢出
Java 堆用于存储对象实例,只要不断地创建对象,并且保证 GC Roots 到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常。
Li_XiaoJin
2022/06/10
4620
实战:OutOfMemoryError 异常(一) -- Java 堆溢出
OutOfMemoryError异常系列之Java堆溢出
OOM异常是一种很常见的错误,但是更多的程序员对其更多的是一种迷惑,今天我就在这给大家讲讲OOM的几种情景。 Java堆溢出。 虚拟机栈和本地方法栈溢出。 方法区和运行时常量溢出。 本机直接内存溢出。 今天主要讲解Java堆溢出,Java堆主要是存储Java对象实例,想测试Java堆异常,只要不断的创建对象,并且保证GC不回收,就可以保证Java堆溢出。 首先,我们限制Java堆的大小为20M,不可扩展,只要保证堆得最小值-Xms与最大值-Xmx一致,就可以避免堆的自动扩展,通过-XX:+HeapDu
用户1257393
2018/01/30
9320
OutOfMemoryError异常系列之Java堆溢出
二、OutOfMemoryError实战
本文通过一些可执行代码来验证异常发生的场景,并且会初步介绍几个与内存相关的最基本的虚拟机参数。 本文的主要目的有两个: 1. 通过代码验证Java虚拟机规范中描述的各个运行时区域储存的内容。 2. 希望读者在工作中遇到实际的内存溢出异常时,能根据异常的信息快速判断是哪个区域的内存溢出,知道怎样的代码可能会导致这些区域的内存溢出,以及出现这些异常后该如何处理。
栋先生
2018/09/29
7480
二、OutOfMemoryError实战
OutOfMemoryError系列: Java heap space错误深度解析
本文包括JVM内存管理、错误产生的原因、内存泄漏的代码示例,最后还会介绍怎么解决这些问题,特别会提到一些性能诊断工具,让你快速的知道问题发生的根本原因。 java.lang.OutOfMemoryError:Java heap space java的应用程序只被允许使用限定好的memory。在java的application启动的时候,这个内存大小就被规定好了。为了让内存管理更加的智慧,java的memory被分为了两个不同的区域。这两个区域分别被叫做heap space和Permanent Generat
ImportSource
2018/04/03
8.9K0
OutOfMemoryError系列: Java heap space错误深度解析
点击加载更多

相似问题

构建AOSP失败

140

AOSP构建错误

12

Aosp构建错误

23

无法再构建: OutOfMemoryError Java堆空间

10

如何构建AOSP应用?

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档