【发布时间】:2022-03-29 07:49:48
【问题描述】:
我正在尝试使用 gomobile 为 android 编译本机 GO 代码。看起来 gomobile 没有找到 ndk-build。
gomobile build -target android hello.go gomobile:在 $ANDROID_HOME/ndk-bundle 和 $ANDROID_NDK_HOME 中找不到 Android NDK
我已经在 ANDROID_HOME 目录中安装了 Android NDK,将文件夹的权限更改为 777,并在 ~/.profile 中添加了一个导出条目,如下所示。
回显 $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/root/work/bin:/root/ANDROID_HOME /android-ndk-r21/ndk-build
我从“ https://godoc.org/golang.org/x/mobile/cmd/gomobile ”安装了 gomobile: 去获取 golang.org/x/mobile/cmd/gomobile
“gomobile init”执行没有问题;然而,“gomobile 绑定”会给出与 gomobile 构建错误相同的错误消息。
我什至尝试在“/work/src/golang.org/x/mobile/cmd/gomobile/env.go”文件中设置环境变量,如下所示,但 os.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
}
}
无论我在 Ubuntu 18.04 vm 或 docker 容器中运行它,构建都会失败。感谢您的意见和反馈。
感谢阅读。
-
您是否运行过
gomobile init -ndk /home/usr/ANDROID_HOME/ndk-bundle/android-ndk-r21/ndk-build
后跟gomobile bind
? -
$ gomobile init -ndk /home/usr/ANDROID_HOME/ndk-bundle/android-ndk-r21/ndk-build 提供但未定义标志:-ndk 用法:gomobile init [-openal dir]如果使用 -openal 指定了 OpenAL 源目录,init 将构建 Android 版本的 OpenAL 以用于 gomobile 构建和 gomobile 安装。
-
@GoLearn 我面临同样的问题。你修好了吗?