Loading [MathJax]/jax/output/CommonHTML/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

复制
相关文章
GitHub 如何从特定的版本中创建分支
在 Git 的操作中,我们可能需要从特定的版本中创建分支。 首先需要的第一步是活的当前项目的提交历史列表。 然后在特定的版本后,选择 <> 标记,进入这个版本的提交历史。 在左上角上,选择提交历史。 在弹出的对话框中输入分支名称。 在你输入名称后,将会提示你创建分支。 这个的意思是从当前的提交版本中创建一个分支。 然后可以从上面的提交中创建一个分支。 在创建完成后,可以从分支列表中查看创建的分支列表。 https://www.ossez.com/t/github/13414
HoneyMoose
2021/04/02
6.9K0
GitHub 如何从特定的版本中创建分支
tar压缩时排除特定文件和文件夹
一日一技是一个每天更新的栏目,力图做到让你每天用2分钟的时间掌握一个开发技巧。 ---- tar压缩文件的时候排除特定文件和文件夹: tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz . 注意末尾有一个点。
青南
2018/10/18
1.7K0
如何使用CP / SCP / RSYNC在Linux中排除特定目录?
对于任何系统管理员或一般Linux操作系统用户而言,在服务器之间执行文件复制操作都是一项常见任务。在将文件从一个系统复制到另一个系统时,由于某些特定原因,我们可能需要排除某些文件和目录被复制。即使在同一系统上将数据从一个位置传输到另一位置时,这也可能适用。
用户6543014
2020/05/04
15.7K0
meteor 简介
“Meteor gives you a radically simpler way to build realtime mobile and web apps, entirely in JavaScript from one code base.”
IMWeb前端团队
2019/12/04
9220
meteor 简介
meteor 简介
本文作者:IMWeb helondeng 原文出处:IMWeb社区 未经同意,禁止转载 What “Meteor gives you a radically simpler way to b
IMWeb前端团队
2018/01/08
1.4K0
meteor 简介
Meteor Tupperware — 更精简的Meteor Docker镜像
meteor-tupperware是一款更为精简的、适用于生产环境的Meteor Docker镜像。我们只需要两分钟就能快速部署应用! 假设你已经安装了Docker并且运行它: 创建 Dockerfile 和 .dockerignore (从 README 复制粘贴即可) 运行 docker build -t yourapp . 你也可以配置它同ImageMagick或PhantomJS协作,如果你的应用依赖它们的话。 相比于之前提到的meteord,它们有如下区别: meteor-tupperware
时见疏星
2018/06/01
5010
如何Meteor中轻松使用Webpack
原文来自Meteor Forum,更多讨论点击「阅读原文」进行查看! Meteor是一套惊人的工具来高效地创建伟大的Web应用。我非常喜爱它。这也是我半年前创建了一个能让Webpack集成进Meteor的扩展包。我觉得如果我们能有一个实时热重载,ES6模块,资源打包和代码分离,这会让Meteor更加酷,并且我们做到了! 但有件事我并不是很高兴,那就是配置Webpack太难了。你需要学习一系列新的概念才能写webpack.config.js。我不喜欢那些文件,因为不管你做的东西多么简单,配置它们都相当麻烦。
时见疏星
2018/06/01
1.1K0
Netty中的引导类Bootstrap
Bootstrap是用来组织Netty的各个结构(pipeline,handler,eventloop),并使他们运行起来的类结构。分成两块,一个是客户端引导类Bootstrap,只用1个channel来处理所有的网络交互,另一个是服务端的ServerBootstrap,它提供一个父channel来接受客户端的请求,然后父channel创建多个子channel来用于的通信
爬蜥
2019/07/09
9570
Git 如何从特定的提交中创建一个新的分支
通过在提交历史中单击右键,然后选择分支,你就可在当前指定的提交历史中来创建一个新的分支了。
HoneyMoose
2022/06/04
6.8K0
Git 如何从特定的提交中创建一个新的分支
WordPress 技巧:如何从 WordPress 页面菜单中移除特定页面
从 wp_list_pages() 中生成的页面菜单中移除特定的页面是非常简单的,只需要把下面代码加入到主题的 functions.php 文件中:
Denis
2023/04/15
2K0
Redis进阶-如何从海量的 key 中找出特定的key列表 & Scan详解
假设你需要从 Redis 实例成千上万的 key 中找出特定前缀的 key 列表来手动处理数据,可能是修改它的值,也可能是删除 key。那该如何从海量的 key 中找出满足特定前缀的 key 列表来?
小小工匠
2021/08/17
4.7K0
浏览器实验中的故障排除
https://webrtchacks.com/troubleshooting-unwitting-browser-experiments-al-brooks/
LiveVideoStack
2021/09/01
2.7K0
WordPress 技巧:从搜索结果中排除页面
默认情况下,WordPress 搜索结果显示发布的文章和页面,如果想把页面从 WordPress 搜索结果中排除,可以在当前主题的 functions.php 文件中添加如下的函数:
Denis
2023/04/13
4820
Blazor 中的路由和路由模板
过去的 ASP.NET Web 窗体和现代 Web 明显区别在于 Web 服务器入口是否存在路由组件。在 Web 窗体中,绝大多数 Web 终结点都是物理文件资源,直接通过其页面路径调用。
AI.NET 极客圈
2019/08/16
8.5K0
Egg 中的路由
在上面的路由中只插入了一个中间件,业务复杂时,还可以插入多个中间件,前提是要把用到的中间件全部引入。
越陌度阡
2020/11/26
1.7K0
Egg 中的路由
meteor框架学习
meteor js的全栈开发框架,官方的解释: Meteor makes it an order of magnitude simpler, and a lot more fun. You can b
用户1141560
2017/12/26
1.3K0
meteor框架学习
npm 中如何下载特定的组件版本
IMWeb前端团队
2018/01/08
4.3K0
npm 中如何下载特定的组件版本
ICCII中如何保持特定module的port
在进行后端设计时,为了使得最终的结果更加优化,也就是面积,功耗,性能更好,工具在优化时可能会把module的port改变。但是这样可能会带来一些问题。问题之一就是前端在进行仿真的时候,由于某些module port找不到了,很难找到需要监测的信号。
白山头
2020/09/15
2.7K0
点击加载更多

相似问题

成员从特定路由中排除混入

13

从Vue.js中的某些路由中排除引导样式

22

Symfony -从安全路径中排除特定路由

21

Meteor中的路由

31

路由regex要求:排除特定的单词

34
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文