编译之前我就预感会遇到很多问题, 第一次编译源码,所遇到的问题实在太多了,记录下问题.方便日后参考.
一 .下载源码:地址:https://source.android.com/source/downloading.html
(注:由于被天朝墙,自己买个vpn,4.2的源码压缩包:12G)
系统:ubuntu 15.04(64位)
(注: 官方文档是要求android ubuntu 64位的系统. 所以我很早就安装了64位)
二.问题列表
问题1:
Android can only be built by versions 3.81 and 3.82
( 我的make 命令 版本过高. 因为我是用ubuntu 15.04 最新版本的,建议用14.04的 文档多)
解决:
下载地址:ftp://ftp.gnu.org/gnu/make/ (在 gnu 官网下载源码)
make 3.8.1 的安装步骤:
tar -zxvf make3.8.1.tar.gz (解压)
然后 cd 到 make3.8.1目录下
执行 ./configure (配置)
make (编译)
make install (安装)
在make3.8.1 目录下 会出现 make 这个编译好的 命令
./make -version (GNU Make 3.81 )
cp make /usr/bin/make (把刚刚编译好的make 把系统的覆盖)
make -version(GNU Make 3.81)
问题2:
You are attempting to build with the incorrect version of java
The correct version is: 1.6.
解决:
注意:编译要求使用1.6的JDK版本。不能使用1.7等其他版本。
1.去官网找了很久,没找到1.6的下载地址.
下载地址:http://download.csdn.net/detail/prefectjava/7038111
进入jdk1.6.0_45所在目录
sudo chmod +x 1.6.0_45.bin (赋予该bin文件可执行属性)
./jdk1.6.0_45.bin
执行 gedit ~/.bashrc 打开 .bashrc文件。
修改./bashrc文件,在文件末尾添加
#set java environment
JAVA_HOME=“你的路径”/jdk1.6.0_45
export JRE_HOME=“你的路径”/jdk1.6.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
在终端执行source ~/.bashrc刷新该配置
java -version ( java version "1.6.0_45")
问题 3:
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
The correct version is: 1.6.
解决:
不知道是不是只有ubuntu 15.04 版本的问题.但是还是可以解决的
gedit ~/.bashrc
在头部加上
#unset
unset JAVA_TOOL_OPTIONS
source ~/.bashrc
问题4:
/bin/bash: bison: command not found
解决:
sudo apt-get install bison
问题5:
/bin/bash: xsltproc: command not found
解决:
sudo apt-get install xsltproc
问题6:
make ** [out/target/product/tiny4412/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/bindings/V8CSSCharsetRule.h] Error
解决:
1、进入/usr/bin
$ ls -l gcc* 查看gcc当前连接版本
$ rm gcc 删除gcc连接
同理
$ ls -l g++*
$ rm g++
2、降级到4.4.7版本
$ sudo apt-get install gcc-4.4
$ sudo apt-get install g++-4.4
$ sudo apt-get install g++-4.4-multilib //64位
$ sudo apt-get install gcc-4.4-multilib
ln -s gcc-4.4 gcc
ln -s g++4.4 g++
问题7:make: ***[out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/skin/window.o] Error 1
解决:
$ sudo apt-get install libx11-dev