3

我正在尝试使用 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 中添加了一个导出条目,如下所示。

echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/root/work/bin:/根/ANDROID_HOME/android-ndk-r21/ndk-build

我从“ https://godoc.org/golang.org/x/mobile/cmd/gomobile ”安装了gomobile:go get 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 容器中运行它,构建都会失败。感谢输入和反馈。

谢谢阅读。

4

0 回答 0