下载Android源码,提示:fatal: unable to access 'https://gerrit.googlesource.com/git-repo/': Failed to connec

本文详细记录了在下载Android源码过程中遇到的网络连接超时问题及解决方案。通过设置git代理,成功解决了连接gerrit.googlesource.com时出现的超时错误。

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

记一次Android源码下载遇到的坑

注:这里的网络都是科学上网后的

按照Android官网源码下载(需要科学上网访问)进行操作时,执行到如下命令

repo init -u https://android.googlesource.com/platform/manifest

出现如下错误:

fatal: unable to access 'https://gerrit.googlesource.com/git-repo/':
Failed to connect to gerrit.googlesource.com port 443: Operation timed out

解决办法:
给git设置代理模式

git config --global http.proxy 127.0.0.1:1087

这里需要注意一点,就是 127.0.0.1:1087不同vpn时不一样的,要设置成使用vpn的的代理才可以

可参考这篇文章

使用git bash下载Android源码Failed to connect to android.googlesource.com port 443: Timed out的问题解决方法

<think>我们正在解决`repoinit`命令执行时无法获取`clone.bundle`的问题,具体错误信息为:`fatal:Cannotgethttps://gerrit.googlesource.com/git-repo/clone.bundle`根据引用[2][3][4],我们可以知道这个错误通常是由于网络连接问题,特别是访问`gerrit.googlesource.com`超时或不可达。国内用户可能由于网络限制而无法直接访问Google的服务器。解决方案通常有两种:1.使用代理(如果用户有可访问国际网络的代理)2.修改`repo`工具的下载源为国内镜像(推荐)引用[4]提供了具体的修改方法:修改`repo`脚本中的`REPO_URL`为国内镜像源,例如清华大学的镜像源。具体步骤:###步骤1:找到`repo`脚本的位置通常`repo`脚本存放在用户的家目录下的`~/bin`目录中,或者`/usr/local/bin`等。可以通过`whichrepo`命令来查找位置。```bashwhichrepo```假设输出为`/usr/local/bin/repo`。###步骤2:修改`repo`脚本使用文本编辑器打开`repo`脚本(需要sudo权限,如果安装在系统目录):```bashsudogedit/usr/local/bin/repo#或者使用vim等编辑器```###步骤3:修改`REPO_URL`在打开的文件中,找到类似下面的行:```pythonREPO_URL='https://gerrit.googlesource.com/git-repo'```将其修改为清华大学的镜像源(或者其他可用的国内镜像):```pythonREPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'```###步骤4:保存并退出保存文件后,再次运行`repoinit`命令,应该可以成功。###注意事项-如果修改后仍然出现问题,可以尝试删除之前初始化失败的目录(即包含`.repo`目录的文件夹),然后重新初始化。-另外,在`repoinit`命令中,也可以直接通过参数指定镜像源,例如:```bashrepoinit-u<manifest_url>--repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/```其中`<manifest_url>`是你的manifest仓库地址(如AOSP的manifest地址,同样建议使用国内镜像)。###国内常用的镜像源-清华大学:`https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/`-中科大:`https://gerrit-googlesource.proxy.ustclug.org/git-repo`(注意:中科大镜像的URL可能需要确认,目前常用的是清华的)引用[4]中使用的就是清华大学的镜像源。###总结修改`repo`脚本中的`REPO_URL`为国内镜像地址是解决此问题的有效方法。同时,确保manifest仓库的URL(即`-u`参数后面的地址)也是国内镜像地址(如AOSP则使用清华或中科大的AOSP镜像)。###相关问题1.如何验证修改后的`repo`脚本是否生效?2.除了修改`repo`脚本,还有其他方法解决此问题吗?3.如何为AOSP项目设置国内镜像源(包括manifest仓库)?</think>### `repo init` 无法获取 `clone.bundle` 的解决方案 #### 问题原因分析 错误信息 `fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle` 通常由以下原因导致: 1. **网络限制**:国内访问 `gerrit.googlesource.com` 不稳定或被限制[^2][^3]。 2. **连接超时**:默认源服务器响应延迟过高(如 `Errno 110: Connection timed out`)[^3]。 3. **证书问题**:服务器 SSL 证书验证失败(较少见)。 --- ### 解决方案(推荐国内镜像) #### ✅ 方法 1:修改 `repo` 工具的源码(永久生效) 这是**最有效的解决方案**,直接修改 `repo` 工具的下载源: ```bash # 1. 定位 repo 脚本路径 which repo # 通常位于 /usr/bin/repo 或 ~/bin/repo # 2. 编辑 repo 文件(需sudo权限) sudo gedit /usr/bin/repo # 或用 vim/nano # 3. 找到 REPO_URL 行并修改为国内镜像源 REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' # 清华大学源 # 或 REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo' # 中科大源 # 4. 保存后重新初始化 repo init -u <your_manifest_url> --no-repo-verify ``` > **注**:修改后所有项目都将使用国内镜像,无需额外参数[^4]。 #### ✅ 方法 2:命令行临时指定镜像源 在 `repo init` 命令中直接覆盖源地址: ```bash repo init \ --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/ \ -u <your_manifest_url> \ --no-repo-verify ``` #### ⚠️ 其他备选方案 - **代理设置**:若需访问原始源,配置代理: ```bash export HTTP_PROXY=http://<proxy_ip>:<port> export HTTPS_PROXY=http://<proxy_ip>:<port> ``` - **关闭证书验证**(不推荐): ```bash repo init --no-repo-verify # 跳过 SSL 验证 ``` --- ### 验证是否成功 初始化成功后,终端会显示: ```bash repo initialized in /path/to/your/project ``` 检查 `.repo/manifests.git/config` 文件,确认包含镜像 URL。 --- ### 相关问题 1. 如何确认当前 `repo` 工具使用的源地址? 2. 除清华/中科大外,还有哪些可靠的 `git-repo` 镜像源? 3. `--no-repo-verify` 参数的作用是什么?是否影响安全性? 4. 修改 `REPO_URL` 后如何恢复默认设置? [^1]: 引用参考 [^2]: 实操-完美解决repo init错误 [^3]: repo报错:fatal: Cannot get [^4]: Linux中repo出现错误的解决方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值