8G内存的电脑编译不了Android O系统?

Android系统的编译工作始终是一件基础性工作,但是随着Android版本的不断升级、Ubuntu的升级、JDK版本的升级等等、以及各种第三方依赖库、不同的系统配置不同的人编译会有不同的问题,同一个人在不同的时间编译也可能会遇到问题。AndroidO版本推出不到一年,据说目前只有百分之一的手机在用,这不,AndroidP版本马上就要出来了!

Google对Android O的编译要求是这么建议的:

(https://source.android.com/setup/build/requirements)

安智客今天要呈现的是一个失败的、初级的问题,也就是Android O的编译问题,在服务器上2小时完成的编译,为啥在安智客好不容易升级成8G内存的电脑上弄了2天呢?现在把几个主要问题记录一下:

1,JDK版本问题,这个是最基础问题还是记录一下。

解决办法:这个最好办:

sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jdk sudo update-alternatives --config java

sudo update-alternatives --config javac

java –version

其他,还有一些Ubuntu版本导致的库的问题,这个是时候,差什么就安装什么了!

2,ln问题。

解决办法,

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

比如:ln -srf build/soong/root.bp Android.bp

3,出现oversize超了的错误,说明要修改默认配置。

解决办法:

因为默认是16G内存,所以需要修改配置。

修改Jack的配置文件prebuilts/sdk/tools/jack-admin

JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1-Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx3000m-cp$LAUNCHER_JAR $LAUNCHER_NAME"

先停止服务./prebuilts/sdk/tools/jack-admin stop-server 重新开始服务./prebuilts/sdk/tools/jack-admin start-server

最后终于编译通过!

附录:jack的错误往往很纠结,可以参照:

大家都遇到过一些什么有趣且能涨知识的问题呢,欢迎讨论!

原文发布于微信公众号 - 安智客(china_safer)

原文发表时间:2018-05-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据和云计算技术

HBase运维实践-聊聊RIT的那点事

相信长时间运维HBase集群的童鞋肯定都会对RIT(Region-In-Transition,很多参考资料误解为Region-In-Transaction,需要...

31140
来自专栏北京马哥教育

15个Linux文件传输命令

? 文 | 糖豆 来源 | 菜鸟教程 糖豆贴心提醒,本文阅读时间5分钟,文末有秘密! Linux lprm命令 Linux lprm命令用于将一个工作...

38550
来自专栏黑泽君的专栏

day69_淘淘商城项目_02

  由于淘淘商城是基于soa的架构,表现层和服务层是不同的工程。所以要实现商品列表查询需要两个系统之间进行通信。   如何实现远程通信?

41020
来自专栏北京马哥教育

了解这15条命令,你将掌握 Linux 文件传输的所有内容

lprm 命令 Linux lprm命令用于将一个工作由打印机贮列中移除 尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将常未送到打印机的工作取消。...

39580
来自专栏漏斗社区

CTF内存取证入坑指南!稳!

最近,斗哥在刷CTF题目。突然刷到了内存取证类,了解到了一款牛逼的工具——Volatility,在kali linux也默认安装好了这个工具,正好可以好好学习一...

66770
来自专栏决胜机器学习

Java初涉感悟

Java初涉感悟 (原创内容,转载请注明来源,谢谢) 一、概述 近期要接触到一些PHP转Java项目,用到的java框架是SpringBoot,故学习一些ja...

38640
来自专栏Java架构师进阶

2018年一线互联网公司Java高级面试题总结

3、hashmap hastable 底层实现什么区别?hashtable和concurrenthashtable呢?

14310
来自专栏SDNLAB

OpenvSwitch系列之浅析main函数

通过前面几篇解析OpenvSwitch内部主要数据结构和流程,对OpenvSwitch有了相对简单的了解,由于本人不是专业搞OpenvSwitch的,纯属业余爱...

42070
来自专栏Pythonista

saltstack高效运维

saltstack是由thomas Hatch于2011年创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统。

29150
来自专栏玄魂工作室

CTF实战4 HTTP协议及嗅探抓包

HTTP(Hypertext Transfer Protocol)中文<超文本传输协议>,是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议,是Int...

13320

扫码关注云+社区

领取腾讯云代金券