问题标签 [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 回答
40 浏览

go - x/mobile:在 go 中使用给定的包名 [String] 启动一个 android 应用程序

以下是用 go 编写的函数:

使用 gomobile 生成了 java 绑定 [.aar]。我想包含在我的 android 应用程序中生成的 .aar 并从 java 层调用 LaunchApplication("com.package.name") 到本机 go 层,并且 go 层应该运行应用程序。

在 java 应用程序中,以下是使用包名运行 apk 的方法:

我在 go using: os.exec() 函数中尝试了同样的方法,但它给出了“在 $PATH 中找不到”的错误

有没有其他方法可以做到这一点?

0 投票
1 回答
823 浏览

go - GoMobile 构建:找不到包

我在 Go[1.12.9 windows/amd64] 中测试 GoMobile 工具,并尝试将其附带的示例项目构建到 Android Apk 中。
在将构建指向目录并运行构建命令时,控制台给出了一个找不到包错误。如何识别 Go 包?
[注意-我尝试安装和使用GoMobile 工具,但它们也无法识别,我只能通过 VSCode 将它们作为 Git 包下载]

0 投票
0 回答
76 浏览

go - 反向绑定的缺失样本申请

如何在 gomobile 中使用反向绑定。我找不到任何示例应用程序可以这样做。 https://github.com/golang/mobile/tree/master/example

有人在 gomobile 中尝试过反向绑定样本 吗?涉及的步骤是什么?

0 投票
0 回答
346 浏览

android - 您可以减小使用 gomobile bind for ios 生成的库的大小吗?

我一直在使用包含我的共享代码(目前只是用于处理 sqlite 数据库的代码)的 GoLang 库制作一个 Android 应用程序,目的是在未来使用相同的库制作 IOS 版本。

只是出于兴趣,我使用生成了我的库的 IOS 版本,gomobile bind -target=ios -ldflags=-s myproject并且非常惊讶地看到生成的框架文件夹以 37mb 出现,这可能是一个交易破坏者(这使得一个相当基本的应用程序变得巨大)

我生成gomobile bind -target=android/arm64 -ldflags=-s myproject的 android 库只有 1.7mb(即使生成一个包含所有架构的二进制文件的 android 库也只有 7mb)

所以我的问题是,有没有办法减少 IOS 二进制文件的大小?gomobile 帮助中没有太多信息。

0 投票
1 回答
956 浏览

java - 找不到“libgojni.so”

将第三方库导入我的 Android 项目后,出现以下错误:

我认为这个库需要 GO 才能正常运行。

如何在我的 Android 项目中实现 GO 或更好的 GO MOBILE 依赖项?我可以通过 maven 或 gradle 来做吗?

0 投票
1 回答
500 浏览

android - 包“src/github.com/rohankeskar19/android_whisper”中没有导出的名称

我正在尝试从我的 go 程序中为 android 生成一个绑定,但 gomobile 给了我一个错误,因为

这是我使用的命令

这是我的文件夹结构

我知道为了导出名称,它们必须以大写字母开头

这是我的代码

0 投票
0 回答
1481 浏览

go - 在 Ubuntu 18.04 的 $ANDROID_HOME/ndk-bundle 和 $ANDROID_NDK_HOME 中找不到 Android NDK

我正在尝试使用 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 调用返回空白。

无论我在 Ubuntu 18.04 vm 或 docker 容器中运行它,构建都会失败。感谢输入和反馈。

谢谢阅读。

0 投票
1 回答
46 浏览

android - 网络绑定不适用于 jni 代码吗?

我知道我的用户连接到没有互联网的 wifi,所以我将 Android 进程绑定到蜂窝:

现在,这在 Kotlin/Android 上完美运行 - 互联网请求通过 Android/Kotlin 代码的蜂窝按预期运行,但不是来自我的 gomobile 库。在 Go 中,请求只是超时。如果我断开 wifi,所有 Go 请求都会成功,这让我认为 Go 以某种方式解决了错误的网络。

我的理解是 gomobile 在 Andoroid JNI 接口上运行,我的直觉是bindProcessToNetwork绑定所有东西,包括向该应用程序的 JNI 接口运行的组件。

有人知道这里可能发生了什么吗?

0 投票
1 回答
679 浏览

android - 如何在 android 上对原生 fyne 应用发出 http 请求

我无法从运行在 android 上的 Go fyne 应用程序发出 http 请求,下面是一个显示问题的简单示例

go run -tags mobile . -t
我可以在第一个屏幕上运行 linux 上的代码
在 linux 上运行的入口屏幕

然后我可以触发事件以向远程服务器发出 http get 请求并在 gui 中查看 http 响应
在此处输入图像描述

正如我们所看到的,一切都可以go run -tags mobile . -t 在 linux 上运行

fyne package -os android -appID basic.client -icon ico.png
现在我使用 fyne install 和 adb打包为 apk adb install <path to apk>/basicExample.apk

当我在 android 中运行应用程序时,我会进入第一个屏幕,然后像以前一样触发事件。
http请求永远不会被触发,我只在logcat中得到一个密码错误

F/libc ( 4711): Fatal signal 6 (SIGABRT), code -6 in tid 4739 (basic.client)
E/InputDispatcher( 535): channel '344d7ddf basic.client/org.golang.app.GoNativeActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

任何帮助将不胜感激

AndroidManifest

来自评论的更新
android 版本 28
golang 版本 go1.14.4 linux/amd64
fyne 版本 fyne.io/fyne v1.3.0

更新 2
在清单中的应用程序标记中添加了以下属性
android:usesCleartextTraffic="true" tools:targetApi="28"

fyne package导致命令出现以下错误
failed to find table ref by "attr/usesCleartextTraffic"

我在命令中添加了一条打印语句来fyne package记录构建环境变量,这就是它们的样子

0 投票
1 回答
323 浏览

ios - 使用 gomobile 生成 .xcframework 文件

是否可以使用 gomobile 生成 .xcframework 文件?

我使用以下命令使用 gomobile 构建了 .framework 文件:

gomobile 绑定 -target ios -o ../frameworks/MyFramework.framework

之后,我尝试使用此命令构建 .xcframework 文件

xcodebuild -create-xcframework -framework "MyFramework.framework" -输出 "MyFramework.xcframework"

但它显示错误:

错误:不支持具有多个平台的二进制文件'/Users/nicco/myFramework/MyFramework.framework/MyFramework'

所以看起来问题出在gomobile框架生成过程中。

所以我看到了两个解决方案:

  1. 使用 gomobile 生成 .xcframework 文件。
  2. 更改 .framework 构建过程,以便能够将 .framework 生成的文件转换为 .xcframework

怎么做?