我正在尝试用gomobile为android编译原生GO代码。看起来gomobile没有找到ndk版本。
gomobile构建-目标android hello.gogomobile:在$Android_HOME/NDK捆绑包或$Android _NDK_HOME 中都找不到Android NDK
我已经在Android_HOME目录中安装了Android NDK,将文件夹的权限更改为777,并在~/.profile中添加了一个导出条目,如下所示。
echo$PATH/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/usr/local/go/bin:/root/work/bin:/root/ANDROID_HOME/ANDROID-ndk-r21/ndk build
我从"https://godoc.org/golang.org/x/mobile/cmd/gomobile"作为:转到golang.org/x/mobile/cmd/gomobile
"gomobileinit"执行时没有问题;然而,"gomobilebind"给出了与gomobilebuild错误相同的错误台面。
我甚至尝试在"/work/src/golang.org/x/mobile/cmd/gomobile/env.go"文件中设置env变量,如下所示,但操作系统。GetEnv调用返回空白。
os.Setenv("ANDROID_HOME", "/home/usr/ANDROID_HOME/ndk-bundle/android-ndk-r21/ndk-build")
androidHome := os.Getenv("ANDROID_HOME")
if androidHome != "" {
ndkRoot := filepath.Join(androidHome, "ndk-bundle")
_, err := os.Stat(ndkRoot)
if err == nil {
return ndkRoot, nil
}
}
无论我在Ubuntu18.04vm还是docker容器中运行,构建都会失败。感谢您的意见和反馈。
感谢阅读。
在遇到类似问题时,对我有效的是。
- 确保ndk bundle文件夹存在于
/Users/username/Library/Android/sdk
- 运行此
export ANDROID_NDK_HOME=/Users/用户名/Library/ANDROID/sdk
- 运行
gomobile构建-目标android hello.go