使用ubuntu17.04编译Android 6.0源代码-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

使用ubuntu17.04编译Android 6.0源代码

简介: 在安装了最新的ubuntu17.04后编译Android6.0源代码的过程中,遇到了很多问题: 1、openjdk无法支持jdk8,只能用回jdk7 2、还有很多未曾遇到的编译问题 还陆陆续续遇到了各种各样的编译失败的信息,最后,参考这两位博主的16.04编译Android的方法顺利解决。

在安装了最新的ubuntu17.04后编译Android6.0源代码的过程中,遇到了很多问题:

1、openjdk无法支持jdk8,只能用回jdk7

2、还有很多未曾遇到的编译问题

还陆陆续续遇到了各种各样的编译失败的信息,最后,参考这两位博主的16.04编译Android的方法顺利解决。

比如下面这个错误:

这里写图片描述

解决方法我是参考以下两位博主的:

http://blog.csdn.net/fuchaosz/article/details/51487585

http://blog.csdn.net/cnliwy/article/details/52189349

直接将:

art/build/Android.common_build.mk文件的:

ifneq ($(WITHOUT_HOST_CLANG),true)改为ifeq ($(WITHOUT_HOST_CLANG),false)

然后发现make -j32后还是一样出现了如图的错误:

这里写图片描述

于是又爬了很久的坑,找到了最终的解决方案:

参考了网上的文章,与clang编译器有关:

具体参考修改方案:

http://blog.csdn.net/codenoodles/article/details/52198470

解决方法:
clang编辑器的问题,在art/build/Android.common_build.mk 中将host 默认编辑器使用clang关掉,找到WITHOUT_HOST_CLANG

关闭clang:

#Host.
ART_HOST_CLANG := false
ifneq ($(WITHOUT_HOST_CLANG),true)
# By default, host builds use clang for better warnings.
ART_HOST_CLANG := false
endif

编译的时候,内存貌似占用不是太多,CPU消耗得太多。


跟之前在虚拟机上编译得不太一样,虚拟机太吃内存,以下是真机编译Android6.0的时候,内存和CPU的占用情况。


最后,终于编译成功了:


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章