源码下载
1. sudo apt-get install curl
2. sudo apt-get install git-core
3. $ mkdir ~/bin
4. $ PATH=~/bin:$PATH
5. curl http://git-repo.googlecode.com/files/repo-1.12 > ~/bin/repo
注意:repo的版本不同会在repo init的时候报错:gpg: 无法检查签名:找不到公钥之类的错误
6. $ chmod a+x ~/bin/repo
7. $ mkdir android4.4
8. $ cd android4.4
9. $ ./repo init -u https://android.googlesource.com/platform/manifest
10. $ ./repo sync
repo sync 遇到如下错误:
fatal: HTTP request failed
error: Cannot fetch platform/tools/motodev
error: Cannot fetch platform/frameworks/base
error: Cannot fetch platform/prebuilts/sdk
error: Exited sync due to fetch errors
解决方法:编辑/etc/hosts文件
$sudo vim /etc/hosts
74.125.31.82 www.googlesource.com
74.125.31.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173cache.pack.google.com
源码编译:
注意:Android4.4的编译需要更高版本的jdk, 如 1.6.0_06升级到1.6.0_45
从谷歌上下下来的源码总是报错:
/usr/lib64/gcc/x86_64-linux-gnu/4.4/../../../../include/c++/4.4/exception_ptr.h:143:13: error: unknown type name 'type_info'
const type_info
之类的错误,后来从115上下载了别人上传的源码,终于编译通过了。
1. source build/envsetup.sh
2. lunch
3. 1
4. make -j2
遇到的错误:
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/libxt_DSCP.c:18:37: fatal error: linux/netfilter/xt_dscp.h: No such file or directory
compilation terminated.
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/libxt_DSCP.o] 错误 1
make: *** 正在等待未完成的任务....
后面也会报错很多linux/netfilter/这个里面文件的错误,都是文件的大小写不同造成的。如xt_DSCP.h,估计是我下载的代码在解压的时候出现了一些问题。
编译成功后在out/target/product/generic/中会生成一些img文件
5. make sdk
遇到的错误:
Module 'bluetooth-health' in PRODUCT_PACKAGES has nothing to install!。 停止。
使用这个命令编译:make PRODUCT-sdk-sdk
sdk编译成功:Package SDK: out/host/linux-x86/sdk/android-sdk_eng.toolpc_linux-x86.zip
6. 运行模拟器
命令:$ emulator