上载和编译Android源码有关问题集(持续更新)
1.下载repo失败
有时候,我们使用android官方方法下载最新repo的时候,总是失败,大多数原因是因为我们的网络被天朝墙了。这时可以通过设置代理的方法来解决:
设置代理
$ export http_proxy=72.64.146.136:3128
创建目录
$ mkdir ~/bin $ PATH=~/bin:$PATH
下载Repo$ curl --proxy 72.64.146.136:3128 https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
修改权限
$ chmod a+x ~/bin/repo
2.repo init -u 的时候出错
这时一般是因为网速过慢或者被墙,多是几次就可以了。
repo init -u https://android.googlesource.com/platform/manifest
-b android-4.2.1_r1
3.在repo sync过程出现“Exited sync due to fetch errors”
也是因为网络原因,重新repo sync ,以前下载过的最新的代码是不会重新下载的。
4.repo init 时如何获取对应的分支版本号
在已经下载了android源代码的目录下执行git branch -a
5.lunch中 “设备名-编译类型”
执行lunch命令
- Lunch menu... pick a combo:
- 1. full-eng
- 2.full_x86-eng
- 3.vbox_x86-eng
- 4.full_maguro-userdebug
- 5.full_tuna-userdebug
- 6.full_panda-eng
“-”前为设备名,后面为编译类型
设备名如下(一般在vendor目录下会有支持的设备名)
crespo 表示Nexus S
crespo4g 表示Nexus S 4G
maguro 表示Google Nexus(GSM/HSPA+)
toro 表示Google Nexus(Verizon)
grouper 表示Nexus7
panda 表示PandaBoard
full 表示模拟器(注意是单独的一个full)
类型如下:
eng: 工程机
user:最终用户机
userdebug:调试测试机
tests:测试机
6.repo init -u 时不使用https,使用http
如果不是用https,而使用http的话表示取消证书认证,避免出错。
7.Nexus系列产品代号
Nexus S :crespo
Google Nexus : maguro
Nexus4 : mako
Nexus7 : grouper
Nexus10 : manta