今天终于下载android 源码成功,现在记录下编译方法,以备后续之需
1.更新配置jdk
sudo apt-get update:更新软件 sudo apt-get install openjdk-7-jdk:更新jdk
2.设置java版本
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
提示说只有一个版本,不需要进行设置
3.执行命令
sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip
遇到如下错误提示
下列软件包有未满足的依赖关系: g++-multilib : 依赖: cpp (>= 4:4.8.2-1ubuntu6) 但是它将不会被安装 依赖: gcc-multilib (>= 4:4.8.2-1ubuntu6) 但是它将不会被安装 依赖: g++ (>= 4:4.8.2-1ubuntu6) 但是它将不会被安装 依赖: g++-4.8-multilib (>= 4.8.2-5~) 但是它将不会被安装 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
进行如下的方法解决此问题
sudo apt-get install g++-multilib(ok)
sudo apt-get install bison git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip(ok)
4.更新gcc,ok
sudo apt-get install gcc
5.在.bashrc中添加如下内容
export USE_CCACHE=1
6.运行如下命令
prebuilts/misc/linux-x86/ccache/ccache -M 50G
这个命令看起来像是设置缓存区域大小的.
7.设置环境
source build/envsetup.sh
8.选择target
lunch
这个应该是选择编译的模式的,如root还是eng
这个我选择的是一
9.进行编译
make -j4
编译报错
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/bin/arm-linux-androideabi-strip:out/target/product/generic/symbols/system/lib/libwebviewchromium.so: File format not recognized
网上查找对策
似乎网上说的是跟一个swap有关,进行如下设置
1)sudo dd if=/dev/zero of=/opt/swap1 bs=1024 count=1024000 2) sudo mkswap /opt/swap1 3) sudo swapon /opt/swap1 4) sudo vim /etc/fstab
增加如下内容
/opt/swap1 swap swap defaults 0 0
用同样的方法,增加swap2
进行了上面的设置,方法编译结果还是错误的。继续查找方法
原来,只需要把源码的out目录删除,然后重新编译就行了
如果你想要结束swap分区,然后重新设置分区大小,可以使用如下命令
sudo /sbin/swapoff /opt/swap2