问题标签 [gomobile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1382 浏览

go - gomobile init 找不到 stdlib.h

我正在尝试使用 go 制作一个跨平台的本机库,并找到了 gomobile 的教程。但是,当我尝试初始化它时(即使我给出了 Android NDK 路径,尽管我没有在下面的示例中)它似乎失败了,因为它找不到stdlib.h.

我试图对 cgo 进行一些调查,但没有任何反应,希望更熟悉生态系统的人可以为我指明正确的方向。

我的环境...(我在 OS X El Capitan 上,全新安装 go1.9 darwin/amd64)

编辑:(添加失败初始化的详细输出)

0 投票
0 回答
292 浏览

android - 如何使用 Gomobile 为 ARMv5 构建?

我正在尝试用 Gomobile 替换现有的 Go 构建。但是,似乎没有办法使用 Gomobile 为 ARMv5 编译。旧版本正在做这样的事情:

这会将库放在 apk 的 armeabi-v7a 文件夹中,这表明它是 ARMv7 二进制文件。

在此处输入图像描述

有什么方法可以生成 ARMv5 库吗?我尝试GOARM=5在 build.gradle 的 gobind 块中进行设置,但这会导致错误:

0 投票
1 回答
237 浏览

go - x/mobile/app 无法为 iOS 编译

您使用的是什么版本的 Go(go 版本)?

您使用的是什么操作系统和处理器架构(go env)?

你做了什么?

运行 gomobile bind -target ios 以获得具有一个功能的最简单的包。

你期待看到什么?

预计将成功绑定包以在 XCode 9.0 中使用

你看到了什么?

产生 1 个错误。

我在 github 上创建了问题。请问有什么帮助吗?

0 投票
1 回答
548 浏览

android - 将 JNIEnv 或 Context 从 Java 传递给 Go

我已经成功编写了一个 go 移动库并从一个 Android Java 应用程序中使用它。

我还成功地从 JNI 调用了 ac 函数。这个有 JNIEnv 指针。

我想将上下文/JNIEnv 从 Java 传递给 Go。

这似乎变得复杂了:

  1. Go Mobile 似乎根本不使用 JNIEnv。
  2. LoadJNI.java 确实有一个上下文对象,并声称将其传递给 Go 端。但是那里是不可见的。
  3. 我已经能够使用“C”指令包含 jni.h
  4. 我可以从 JNI/C 传输 JNIEnv 或将其作为全局变量存储在那里,但这是一个丑陋的组合。
  5. https://github.com/golang/go/issues/16876谈到了做反向绑定的提议,但目前尚不清楚状态是什么。
  6. https://godoc.org/golang.org/x/mobile/cmd/gobind也谈到了它,但下面的代码片段

import "Java/java/lang/System" t := System.CurrentTimeMillis()

返回

在 CI 中使用编译器指令解决了它:#cgo CFLAGS: -I...

但我不确定如何为 Java 做到这一点

简而言之,我现在陷入困境,希望得到帮助。理想情况下,如果可能的话,我只想将对象作为参数传递。但是,我愿意接受任何反向绑定以从 Go 调用 Java。

0 投票
1 回答
735 浏览

go - 在 mac OS Sierra 10.12 上安装 gomobile

我正在尝试在 mac OS Sierra 10.12 上安装 gomobile。我已经安装了 1.7.1 版。

完成以下步骤后:

  1. go get golang.org/x/mobile/cmd/gomobile

  2. gomobile init

我收到以下错误

0 投票
1 回答
577 浏览

java - gomobile如何在apk中嵌入资产

使用适用于 Android 的 gomobile 进行开发时。如何在 apk 文件中包含资产(html、js、图像)?我有一个在 apk 内运行的 web 服务器,它在 apk 内以及 go run 内工作,但是当打包在手机上的 apk 内时,服务找不到它的资产/静态文件。

0 投票
1 回答
1730 浏览

android - 如何将简单的 Go 脚本作为 Android 服务运行?

我有以下 Go 脚本 ( testapp.go ),我想继续作为后台服务运行:

我的GoNativeActivity.java看起来像这样:

我的GoNativeService.java看起来像这样:

我的AndroidManifest.xml文件如下所示:

这是我的工作环境:

这是我的$GOPATH/src/testapp目录的样子:

这是我的$GOPATH/src/golang.org/x/mobile/app目录的样子:

如何在 Android 上将我的 Go 脚本作为后台服务运行,以便在退出应用程序(MainActivity 关闭)时,后台服务将继续获取新闻消息?

注意:我在端口 88 上监视我的网络服务器上的请求。我可以在GoNativeActivity活动时很好地运行脚本,但我想知道如何构建一个启动后台服务的本机应用程序。

任何答案或尝试指出我正确的方向将不胜感激!

0 投票
1 回答
215 浏览

ios - 带有“禁用 PIE”/i386 拱门的 Gomobile 绑定生成库

我已经使用 gomobile 绑定工具构建了我的 Go 库以在 iOS 应用程序中使用。我已经将我的库包装到 Cocoapods .podspec 中。它在模拟器中运行良好(通过本地开发 pod),但是当我尝试做pod lib lint(部分步骤,发布 cocoapod 的一部分)时,我遇到了错误:

错误:

警告:

它似乎链接到其他架构。我无法弄清楚如何跳过 i386 - 即使我覆盖了 VALID_ARCHS - 我想它无论如何都不是正确的解决方案。

所以相反,我想知道如何从我的 Go 代码中构建一个正确的二进制文件——我尝试将 -ldflags="-extldflags=-pie" 提供给 gomobile bind 命令,但我假设它更多的是编译问题。我知道有 -buildmode=pie 可用于 go build,但仅适用于主包,也不适用于 gomobile 绑定。

0 投票
1 回答
666 浏览

ios - gomobile:绑定 ObjC 的回调

我有一个 Go 界面

我必须使用此接口从 ObjC 订阅该事件 OnResult。

ObjC bind 给了我一个对应的协议和一个基础类

所以,我需要在我的 ObjC 环境中获取这个 json。我怎样才能做到这一点?

  1. 子类化如果我将此 GetResponse 子类化,或者只是按原样使用它并传递给订阅例程,它会崩溃 'go_seq_go_to_refnum on objective-c objects is not allowed'
  2. 类别如果我使用协议支持在 Go 端创建结构,我不能对其进行子类化,但至少它不会崩溃:

    我有一个实体对象,没有明显的方法来连接我的回调。如果我创建一个类别并覆盖 onResult 例程,则不会调用它。仅仅因为覆盖现有的类方法不是根据 AppleDoc 确定的行为。任何时候从 Go 调用 OnResult,都会调用默认实现并出现“GO RESULT”。

  3. Swizzling我尝试使用 category 和 swizzle(用我的重命名方法替换方法的实现),但它只有在我从 ObjC env 调用 onResult 时才有效。

有什么办法可以解决我的问题吗?或者我只是不很准确地红色文档?请帮我

0 投票
2 回答
501 浏览

android - 无法从 golang 将 AAR 导入我的应用程序(尝试了以前的答案,但它们不起作用)

我正在尝试制作一个可以包含在 Android 应用程序中的 golang 包。

所以我有

  • 创建了一个 golang 模块并使用 go bind to aar 构建它
  • 在 Android Studio 中使用“新模块”导入 aar
  • 转到项目结构/依赖项/...连接 aar,但未列出 aar,所以我无法添加它。
  • 该模块似乎在 android/mobile 中;我如何告诉 Android Studio?我需要吗?

所以

  • 有谁知道我需要绑定的确切命令行是什么?假设,假设我正在项目“hk.nurke.fred”中尝试模块“移动”。
  • 另外,如何在 java import 语句中引用我的包?