简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀
优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
1.前言
本篇目的:Android14编译Cuttlefish模拟报错:unrecognized import path “google.golang.org/grpc”
2.具体报错
- go build -v -ldflags=-w
- go: github.com/google/android-cuttlefish/frontend/src/liboperator@v0.0.0-unpublished requires
google.golang.org/grpc@v1.40.0: unrecognized import path “google.golang.org/grpc”: https fetch: Get “https://google.golang.org/grpc?go-get=1”: dial tcp 172.217.160.81:443: i/o timeout - go: github.com/google/android-cuttlefish/frontend/src/liboperator@v0.0.0-unpublished requires
google.golang.org/grpc@v1.40.0: unrecognized import path “google.golang.org/grpc”: https fetch: Get “https://google.golang.org/grpc?go-get=1”: dial tcp 172.217.160.81:443: i/o timeout - make[1]: *** [debian/rules:26:override_dh_auto_build] 错误 1
- make[1]: 离开目录“android-cuttlefish/frontend”
- make: *** [debian/rules:17:build] 错误 2
- dpkg-buildpackage: 错误: debian/rules build subprocess returned exit status 2
- debuild: fatal error at line 1182:
- dpkg-buildpackage -us -uc -ui -i -b -d failed
3.根本原因
-
GOPROXY :从 Go 1.11 版本开始,官方支持了 go module 包依赖管理工具。
-
还新增了 GOPROXY 环境变量。
-
如果设置了该变量,下载源代码时将会通过这个环境变量设置的代理地址,而不再是以前的直接从代码库下载。
-
goproxy.io 这个开源项目帮我们实现好了我们想要的。提供了公用的代理服务 https://goproxy.io,我们只需设置该环境变量即可正常下载源码包。
4.解决
<1>.修改位置:
修改前:
# vim android-cuttlefish/frontend/src/goutil
23 if [[ "$version" > "1.15" ]]; then
24 # Temporary solution until https://github.com/golang/go/issues/28194 is fixed
25 # in order to retry failed fetch requests.
26 # GOPROXY fallback was added in Go 1.15
27 export GOPROXY="proxy.golang.org|proxy.golang.org|direct"
34 fi
修改后
23 if [[ "$version" > "1.15" ]]; then
24 # Temporary solution until https://github.com/golang/go/issues/28194 is fixed
25 # in order to retry failed fetch requests.
26 # GOPROXY fallback was added in Go 1.15
27 # 启用 Go Modules 功能
28 export GO111MODULE=on
29 # 配置 GOPROXY 环境变量
30 export GOPROXY=https://goproxy.io
31 fi