Ubuntu 18.04安装openJDK7编译安卓6.0.0_r1

最近在使用AOSP编译安卓6.0.0_r1源码,自己的机器是Ubuntu18.04 TLS,试了网上所有安装openjdk7的教程发现没有一个可以使用的,实属无奈只能自己动手解决这个问题完成了编译,教程如下

1、下载openJDK7

很多人都会卡在这一步,编译AOSP只能使用open JDK不能使用Oracle JDK,在ubuntu18.04上添加opoenjdk7的ppa后用apt install安装不上openjdk7,使用deb安装又缺少相关的lib…
在这里插入图片描述
不过有网友把安装包上传到了csdn需要用积分下载,不愿意折腾的同学可以用积分下载或淘宝花一元下载解决,下载地址: __ 点我下载__

当然花钱是不可能的,积分我也没有,所以自己动手折腾,访问openjdk的官网可以找到openjdk7的安装包

下载页面地址
https://jdk.java.net/java-se-ri/7

点击GNU版本的下载
在这里插入图片描述
有同学会发现这个版本是1.7.0_75,这为后续埋了了个坑,需要动手去解决…

2、配置JAVA环境变量

下载完成后解压这个压缩包到自己的目录

sudo tar zxvf openjdk-7u75-b13-linux-x64-18_dec_2014.tar.gz -C /opt

然后配置一下环境变量

# 修改profile文件
sudo gedit /etc/profile

# 加入下面的配置
export JAVA_HOME=/opt/java-se-7u75-ri
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH

# 更新profile文件
source /etc/profile

这时候输入java --version 或 javac --version 就能看到jdk和jre的版本都是1.7.0了
在这里插入图片描述

3、修改make文件

按照上一步配置后会出现两个问题
Q1、使用java版本选择工具可能无法识别到jdk1.7
Q2、进行make会提示jdk1.7是不能识别的openJDK1.7,这里主要是makefile里的正则表达式判断失误,所以需要修改makefile。

操作步骤:
1.修改安卓源码目录下的/build/envsetup.sh

sudo gedit build/envsetup.sh
# 搜索  ANDROID_SET_JAVA_HOME
# 将刚才解压的jdk路径粘贴到下方的 JAVA_HOME 变量中

在这里插入图片描述

2.注释掉版本检测的终止语句

# 编辑主make文件
sudo gedit build/core/main.mk
# 注释掉第 171 行的终止命令
# $(error stop)

在这里插入图片描述
保存后按照正常的编译命令进行make就可以了。虽然终端还会打印jdk不匹配的信息,但是make过程中不会再产生openjdk7产生的问题了。

3、效果展示

四核16G内存,使用18线程,台式机真机运行,make了一个小时
在这里插入图片描述
刷入nexus 5,大功告成
在这里插入图片描述

4、后记

这里绕过main.mk文件检测的逻辑理论上可以绕过Oracle JDK的检测,就可以用Oracle JDK 1.7 build,这里提供一个思路,我这里还没有尝试,有兴趣的朋友可用自己的机器试一试,遇到的问题欢迎留言。

具体编译的步骤已经有很多同学进行了整理,我这里提供的是openjdk的解决思路,具体编译教程可以看下面的文章

Ubuntu 18.04.3 LTS 编译安卓6.0.0_r1

使用ubuntu 16.04编译android-6.0.0_r1

Google官方教程-搭建编译环境

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值