AOSP 项目源码编译环境搭建过程中的几个问题

如果按照上一篇博文中的建议,先从清华的源下载 AOSP 项目的基础包,解压后再同步,则可能会遇到一些小问题。

第一个小问题是,如果你像我一样,试图把源码放置在一个 exFAT 格式的分区上,以图本机上的不同操作系统下都可以访问到,那现在你要得到的建议就是:别那么搞。我最开头也只是抱着试试看的态度进行尝试的,我以为会在后续的构建等过程中才会有问题出现,事实上是在解压这一步就失败了。在遇到 aosp/.repo/projects/frameworks/minikin.git/hooks 的时候,会出现 Cannot open: Permission denied 错误。当然我并未深究这到底是因为 WSL 环境下,Debian 自带的 tar 命令有 bug,还是 exFAT 或者其他什么因素的影响。立刻老老实实切换到 Linux 下去了。

另一个问题是,当你把 tar 快照解压完成,执行 repo sync 时会遇到的。这个命令把差异部分从远程拉下来之后,在合并时报错,信息如下,

info: A new version of repo is available
repo: Updating release signing keys to keyset ver 2.3
warning: repo is not tracking a remote branch, so it will not receive updates
repo reset: error: Entry ‘git_command.py’ not uptodate. Cannot merge.
fatal: Could not reset index file to revision ‘v2.30^0’.

需要执行的操作是,进入到 aosp/.repo/repo 目录下执行 git pull 命令,以使 git_command.py 确保是所需的最新。

经过此番操作,再次 sync 的话,Updating files 的所有步骤可以执行完毕,会显示 Checking out: 100% (1182/1182), done in 12m45.585s,但紧接着会报以下错误,

error: Unable to fully sync the tree.
error: Downloading network changes failed.
Try re-running with “-j1 –fail-fast” to exit at the first error.

看了网上的一个解决办法:晚上下载。现在距离晚上还有一段时间,还没来得及试,不过直觉应该是可行的……

更新:

当时立即按照提示,加上 -j1 --fail-fast 参数又执行起来,隔夜后查看竟然成功了。但在此期间还做了一个操作,就是把一直位于独立分区上的 bin 目录做了一个软链接到 ~ 目录下,且修改 ~/.bashrc,将之加入到了 PATH 中。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注