2. 配置Java开发环境
任务目标
在AOSP源码编译环境中,正确配置Java开发环境是编译成功的前提。不同Android版本对JDK版本有严格要求:Android 7.0及以下需要OpenJDK 8,Android 8.0及以上需要OpenJDK 9+(实际编译通常使用OpenJDK 8或11)。本案例以Ubuntu 18.04 + AOSP Android 9.0为例,完成OpenJDK 8的安装、配置与验证。
环境依赖
- Ubuntu 18.04 x86_64(或兼容版本)
- 已安装git、curl等基础工具
- 具备sudo权限
实现步骤与代码
1. 安装OpenJDK 8
Ubuntu 18.04默认源中不包含OpenJDK 8,需添加第三方源或直接下载安装。以下使用apt安装方式:
# 添加OpenJDK 8源(适用于Ubuntu 18.04)
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
# 安装OpenJDK 8(包含JDK和JRE)
sudo apt-get install -y openjdk-8-jdk
# 验证安装版本
java -version
javac -version
预期输出(示例):
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~18.04)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
javac 1.8.0_292
2. 配置JAVA_HOME环境变量
AOSP编译脚本通过JAVA_HOME定位JDK路径。OpenJDK 8默认安装路径为/usr/lib/jvm/java-8-openjdk-amd64,需将其写入环境变量:
# 编辑用户环境变量文件
echo 'export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
# 使配置立即生效
source ~/.bashrc
# 验证JAVA_HOME
echo $JAVA_HOME
which java
预期输出:
/usr/lib/jvm/java-8-openjdk-amd64
/usr/lib/jvm/java-8-openjdk-amd64/bin/java
3. 验证AOSP编译环境兼容性
在AOSP源码根目录下执行以下命令,确认Java版本满足编译要求:
# 进入AOSP源码目录(假设已下载)
cd ~/aosp
# 加载编译环境(会检查Java版本)
source build/envsetup.sh
# 检查Java版本是否符合要求
java -version 2>&1 | head -n 1
若输出包含1.8.0,则Java环境配置正确,可继续执行lunch选择编译目标。
验证方法与判定标准
- 版本验证:执行
java -version和javac -version,输出必须为1.8.0_xxx格式,不能是OpenJDK 11或更高版本。 - 路径验证:
echo $JAVA_HOME必须输出/usr/lib/jvm/java-8-openjdk-amd64,且which java指向该路径下的可执行文件。 - 编译环境验证:在AOSP根目录执行
source build/envsetup.sh不报错,且java -version仍显示1.8.0,说明编译脚本能正确识别Java环境。
常见问题
- 系统存在多个JDK版本:使用
sudo update-alternatives --config java手动选择OpenJDK 8作为默认版本。 - Android 8.0+编译报错:若目标AOSP版本要求OpenJDK 9+,需安装
openjdk-11-jdk并相应修改JAVA_HOME路径为/usr/lib/jvm/java-11-openjdk-amd64。 - ppa源添加失败:可改用直接下载方式,从
https://adoptium.net/获取Temurin 8的tar包解压后手动配置JAVA_HOME。