Go编译成aar(保姆式教程)
第一次这么干,首先得把环境配置正确,所以我们采用最简单的go项目,保证编译过程中不因复杂项目导致的乱七八糟的编译问题。
最简单的项目编译成功后,再进行复杂项目的编译,那时只需要专注项目代码问题就行了;
环境
-
win10
-
go及gomobile的环境配置
go安装及配置
gomobile安装, 如果报错,缺什么库参考文档安装即可 -
gomobile环境变量配置:
-
在PATH环境变量中增加 ;%GOROOT%/bin;%GOPATH%/bin
-
配置Android NDK的环境变量
- 使用gomobile工具,需要先配置好Android NDK的环境变量( Android NDK官方网站),以下两种方法皆可;
- 使用 Android SDK目录,配置ANDROID_HOME环境变量,会自动使用SDK目录下的ndk-bundle目录作为NDK目录;
- 配置ANDROID_NDK_HOME环境变量到NDK目录;
注:(ANDROID_HOME和ANDROID_NDK_HOME同时配置时,编译器会优先使用SDK/ndk-bundle目录下的NDK, 配置好环境变量后,最好重启下vscode生效)
-
开发环境: vscode或Goland
编译(一切妥当,开干)
- gomobile编译命令
生成apk:gomobile build -target=android 项目名
生成aar包:gomobile bind -target=android 项目名
- 生成aar路径: GOPATH\go\src\golang.org\x(可能会不一样)
编译问题
-
提示NDK版本过低(如下报错),下载最新NDK到环境变量指定的位置;
不要把ndk放到你的Android SDK 下的 ndk-bundle\android-ndk-r22b,这种路径,把NDK的内容直接放在Android SDK 下的 ndk-bundle下,(每次修改完环境变量或者里面的内容记得重启vscode)如下所示:
-
报错提示 no exported names in the package
这是由于项目放置路径不对造成,正确路径:GOPATH\src\hello
结语:
整个过程,NDK下载啥的,可能需要翻墙或者使用代理,在gomobile仓库下载过程中,可能会超时,多试几次就行了,国内访问GitHub有点不稳定,感谢参考博客的大牛,也希望可以帮到你,加油吧!