解决下载Android源码时遇到的 download error

本文介绍了解决在使用repo/git下载Android源码时出现的406错误的方法。通过更改下载URI、添加gmail账号认证等步骤,可以有效避免因连接数限制导致的下载失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zz http://my.oschina.net/simaben/blog/128025

按照 google 的官网设置会出现在下载的时候产生错误 从而不能下载

之前Android的代码是在Linux kernel(android.git.kernel.org)管理,被Kernel踢出来之后,Android源码现在直接由Google(android.googlesource.com)管理。
用repo/git下载源码时,执行

1 $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1

会报错误 异常为

error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/cts/info/refs

fatal: HTTP request failed
error: Cannot fetch platform/cts
error: Failed to connect to 2404:6800:4008:c01::52: Network is unreachable while accessing https://android.googlesource.com/platform/external/bzip2/info/refs

fatal: HTTP request failed
error: Failed to connect to 2404:6800:4008:c01::52: Network is unreachable while accessing https://android.googlesource.com/platform/external/checkpolicy/info/refs

fatal: HTTP request failed

解决方法

1. 浏览器登录https://android.googlesource.com/new-password,并用gmail帐号登录;

2. 点击网页上的“允许访问”,得到类似

 
  1. machine android.googlesource.com login git-jacky.rg4.net password 1/dkRiGEvvC8o8Pgg-GsM2AbMNS_32-U0Pf0_VWkYogIA 
  2. machine android-review.googlesource.com login git-jacky.rg4.net password 1/dkRiGEvvC8o8Pgg-GsM2AbMNS_32-U0Pf0_VWkYogIA 

3. 把上面那段信息追加到~/.netrc文件结尾(请检查当前用户的权限, 如果不存在此文件则自己新建一个);

4. 下载地址的URI更改为https://android.googlesource.com/a/platform/manifest(中间加上了“/a”)。

5. repo init -u https://android.googlesource.com/a/platform/manifest -b android-4.0.3_r1

6. repo sync

即可拉下Android源码。

官方的说法是:因为访问基本是匿名的,为了防止连接过多(指内网/虚拟机),对同一IP地址的连接数做了一定的限制。看来是用gmail帐号进行认证。

这样的话,在公司网络内或者用虚拟机下载的话,会经常遇到这问题。

源码官网指导网址: http://source.android.com/source/downloading.html

### 如何下载并导入 Android 开源项目到 Android Studio #### 准备工作 在开始操作前,需确认已安装最新版的 Android Studio 并配置好 JDK 和 Gradle 环境。如果尚未完成这些步骤,请先参照官方文档进行设置[^1]。 #### 下载开源项目 通过 GitHub 或其他代码托管平台获取目标项目的源码。通常有以下两种方式: 1. **克隆仓库**:打开终端或命令行工具,运行 `git clone <repository_url>` 命令来复制远程仓库至本地。 2. **下载 ZIP 文件**:访问项目页面,点击“Code”按钮后选择“Download ZIP”,解压后即可获得完整的项目结构[^2]。 #### 导入项目到 Android Studio 以下是具体的操作流程: 1. 启动 Android Studio,选择菜单栏中的 “File -> New -> Import Project...”。 2. 浏览定位到刚刚下载的项目根目录(如果是 ZIP 文件,则需要提前解压缩),选中该路径并单击 “OK”。 3. 如果遇到提示更新 Gradle 版本的情况,请仔细阅读错误日志,并根据实际情况调整 `build.gradle` 文件中的依赖项版本号。例如修改如下字段以适配当前环境: ```groovy classpath 'com.android.tools.build:gradle:<version>' ``` 4. 完成上述更改之后重新同步项目 (`Sync Now`) ,等待构建过程结束。期间可能会自动下载缺失的库文件或者插件资源[^3]。 5. 解决可能存在的编译问题。由于不同开发者使用的 SDK/NDK 工具链可能存在差异,因此建议核查以下几点: - 验证所选 API Level 是否满足最低要求; - 检查是否存在未解析的外部依赖关系; - 调整 ProGuard/R8 规则以防混淆处理引发异常行为[^4]。 6. 成功加载完毕后便可正常编辑、调试甚至扩展功能逻辑了! ```python # 示例 Python 伪代码展示自动化脚本辅助部分环节实现思路 import os from subprocess import call def setup_project(repo_url, destination_folder): """Clone repository and initialize environment.""" try: if not os.path.exists(destination_folder): os.makedirs(destination_folder) # Clone the project from remote URL. result = call(['git', 'clone', repo_url], cwd=destination_folder) return True if result == 0 else False except Exception as e: print(f'Error occurred during cloning process: {e}') return False if __name__ == '__main__': url = input('Enter Git Repository URL:') folder = './projects' success = setup_project(url, folder) if success: print('Project has been successfully set up.') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值