go - 在 Ubuntu 18.04 的 $ANDROID_HOME/ndk-bundle 和 $

我正在尝试使用 gomobile 为 android 编译 native 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 bind”给出了与 gomobile 构建错误相同的错误消息。

我什至尝试在“/work/src/golang.org/x/mobile/cmd/gomobile/env.go”文件中设置 env 变量,如下所示,但 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 虚拟机还是 docker 容器中运行,构建都会失败。感谢输入和反馈。

感谢阅读。

最佳答案

当我遇到类似问题时,对我有用的是。

  1. 确保ndk-bundle文件夹存在于

/Users/username/Library/Android/sdk

  1. 运行这个

export ANDROID_NDK_HOME=/Users/username/Library/Android/sdk

  1. 运行你的

gomobile build -target android hello.go

关于go - 在 Ubuntu 18.04 的 $ANDROID_HOME/ndk-bundle 和 $ANDROID_NDK_HOME 中都没有找到 Android NDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61052574/

相关文章:

http - flutter x-www-form-urlencoded POST 请求

bash - 如何使用 shell 脚本判断 postgres 数据库表是否存在

magento - 有没有办法使用 Rest api 在 Magento 2 中获取特定类别的自定义

javascript - 按下后退按钮时防止 react 路由器重新加载 API 调用。 react

python - 无法执行 Cloud Function 触发不允许未经身份验证的调用的 HTTP

java - Spring 将 @PathVariable 绑定(bind)到 JavaBean

azure-devops - 已邀请用户 Azure Devops 项目,但他们无法访问它

javascript - 使用 ThreeJS 可以保护 3D 模型吗?

android - performAction() 中的 SCROLL_TO_POSITION 返回

python - 求解一对线性方程时的断言错误