macOS Catalina 10.15.7下AOSP repo sync同步失败求助
解决AOSP同步platform/external/skqp失败的问题
针对你在macOS Catalina 10.15.7环境下同步AOSP android-10.0.0_r41标签时遇到的HTTP 499、curl framing层错误,以及无法初始化platform/external/skqp工作树的问题,这里有几个经过验证的解决方案:
1. 禁用Git的HTTP/2支持
报错提示HTTP 499 curl 16 Error in the HTTP2 framing layer,说明Git使用HTTP/2传输时出现了兼容性问题。macOS自带的curl在部分场景下和AOSP服务器的HTTP/2交互不稳定,你可以强制Git使用HTTP/1.1:
git config --global http.version HTTP/1.1
执行完这个命令后,重新运行repo --trace sync -j1尝试同步。如果之后需要恢复HTTP/2,只需执行:
git config --global http.version HTTP/2
2. 增大Git的HTTP传输缓冲区
大文件传输时,默认的缓冲区大小可能导致连接断开,你可以调整Git的HTTP相关缓冲区参数:
git config --global http.postBuffer 524288000 git config --global http.maxRequestBuffer 100M
设置完成后,你可以先单独同步这个出问题的项目,减少整体同步的压力:
repo sync platform/external/skqp -j1
成功后再继续全量同步。
3. 手动初始化skqp工作树
既然自动初始化工作树失败,我们可以手动完成这个过程:
- 进入该项目的.git仓库目录:
cd /Volumes/android/aosp/.repo/projects/external/skqp.git
- 手动拉取对应标签的代码:
git fetch --tags android-10.0.0_r41
- 回到工作区目录并切换到目标标签:
cd /Volumes/android/aosp/external/skqp git checkout android-10.0.0_r41
完成后重新运行repo sync,应该就能继续剩下的同步流程了。
4. 检查磁盘权限与空间
macOS Catalina的权限管控较严格,确保你的AOSP目录(/Volumes/android/aosp)拥有读写权限:
chmod -R 755 /Volumes/android/aosp
同时用df -h检查磁盘剩余空间,AOSP 10的完整源码至少需要100GB以上的可用空间,空间不足也会导致同步失败。
5. 更换稳定的网络环境
HTTP 499错误有时是网络波动导致的连接中断,建议切换到有线网络,或者尝试更稳定的网络环境后再重试同步。
内容的提问来源于stack exchange,提问作者genius8086




