执行source build/envsetup.sh卡顿30分钟,求Android ROM构建故障解决方法
解决Android ROM构建中
source build/envsetup.sh卡顿问题 针对执行source build/envsetup.sh卡在including vendor/evolution/vendorsetup.sh步骤、耗时超30分钟的问题,结合脚本逻辑,以下是可行的解决办法:
本地缓存JSON文件绕过网络请求
从get_official_devices.py脚本逻辑可知,卡顿根源是远程拉取设备列表JSON文件时网络受阻。你可以:- 从能正常访问的环境中下载该JSON文件并保存到本地;
- 修改
get_official_devices.py脚本,将远程请求逻辑替换为读取本地文件:# 替换原requests.get相关代码为以下内容 import json with open('/绝对路径/到/本地/devices.json', 'r') as f: device_data = json.load(f)
这样脚本无需发起网络请求,直接读取本地文件即可避免卡壳。
临时跳过网络请求步骤
如果当前不需要官方设备列表,可以暂时注释掉vendorsetup.sh中调用get_official_devices.py的代码:# 在vendor/evolution/vendorsetup.sh中找到对应行,添加#注释 # python vendor/evolution/tools/get_official_devices.py后续需要设备列表时再恢复该行即可。
排查网络访问障碍
- 测试JSON链接连通性:在终端执行
curl -v <脚本中的JSON文件地址>,观察是否能快速返回内容,判断是否是网络链路问题; - 更换DNS服务器:将本地DNS改为8.8.8.8或1.1.1.1,重启网络后重试;
- 检查代理与防火墙:关闭全局代理,或确认防火墙未阻止脚本的网络请求。
- 测试JSON链接连通性:在终端执行
验证系统环境一致性
- 核对Python版本:执行
python --version,确保与其他正常构建的用户版本一致; - 检查依赖库:执行
pip list | grep requests,确认requests库已安装,未安装则执行pip install requests; - 检查环境变量:执行
env | grep -E '(HTTP|PROXY)',排查是否存在异常的代理变量干扰网络请求。
- 核对Python版本:执行
内容的提问来源于stack exchange,提问作者user2049184
相关产品推荐
相关产品推荐

