1、更新apt的源
参考此博客:https://blog.csdn.net/qq_30683329/article/details/88582435
在souce.list 中再多添加一个
deb http://us.archive.ubuntu.com/ubuntu trusty main universe
用于安装下一步的依赖库
2、安装依赖库
执行以下命令
$ sudo apt-get install git gnupg flex bison gperf build-essential
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386
libgl1-mesa-dev g+±multilib mingw32 tofrodos
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
安装内核编译依赖:sudo apt-get install lzop
安装完成后,可以开始编译了。
3、编译Android7.1源码
Android7.1 的源码,依赖于jdk-8,一般我们使用apt-get 安装jdk8,
此处有个大坑,我们使用apt-get 安装的jdk8 目前只有jdk8-292(目前官网上只剩下这个版本了)但是Android 源码使用此jdk 版本,会出现jack-server 错误,用sdk 目录下prebuilts/sdk/tools下的jack-admin dump-report出来的错误提示
gnutls_handshake() failed
,之前被这个问题折磨了很久,最后才知道,本机使用的jdk版本不得低于jdk8 ,不得高于jdk8-191,因目前官网没有旧版本的jdk 了,所以只有找原来的资源,资源上传至我的博客资源(jdk8-171).目前测试OK。
jdk的安装
资源下载后,解压出来,如第一次安装jdk 则执行
sudo mkdir /usr/lib/jvm
sudo mv java-8-openjdk171-amd64 /usr/lib/jvm
然后导入java 环境变量,修改~/.bashrc文件在最后一行添加(编辑时添加sudo )
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk171-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
然后注销一下,重新登入,查看java 版本java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-2~14.04-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)
再次重新编译,如还出现jack-server 错误,使用jack-admin dump-report 导出来的日志是还是client server 等网络问题,最后出现的ssl connect failed ,出现此问题的原因,是因为之前使用其他的jdk 编译出错过一次,此时在代码out目录下已经出现了一些jar 包,重新更新jdk 后,与之前生成的文件有冲突导致的,此时执行make clean 重新编译即可。
其他jack-server问题
出现server 端口8087:拒绝连接问题:是因为主目录下.jacksetting 与.jackserver/config.properties配置的端口不一致,此时需要编辑两个文件,使端口一致。
如出现端口占用问题,修改上面提到的两个文件的端口号即可。
至此,源码应该已经可以正常编译了。大家共勉!!!!!有问题,请私信。