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

javascript - 从 GoMobile 调用 JS 包?

我的理解是 ReactNative 将它的 JavaScript 编译成一个可用的 JS 包:http://localhost:8081/index.ios.bundle

GoMobile 中是否可以使用该 JS 捆绑文件呈现视图?

我试图弄清楚我是否可以将 Go 用于后端应用程序开发,并将 ReactNative 用于 UI,而无需绑定到 Swift/Java。

0 投票
1 回答
1771 浏览

java - android gomobile 上的“不支持的标志 DT_FLAGS_1=0x9”错误

我在项目中进行的是一个使用 gradle 构建的 Cordova 项目。我创建了一个 android 插件,它以.aar. 所有适用于简单的hello world.go .aar. 所以我知道一切正常。但是 在 adb logcat 中添加selphyprint.aar它会崩溃并出现错误。"Unsupported flags DT_FLAGS_1=0x9"

它位于https://github.com/pbdesign/selphy。完整的项目位于https://github.com/pbdesign/printprojectcom.photobooth ,项目目录的 android 文件夹中有一个可安装的 apk 。

如果您有任何想法,我发现了一些与 android 链接器相关的类似错误消息,但不知道它们是否相关。也将不胜感激有关如何调试此类错误的任何想法。

0 投票
1 回答
805 浏览

android - gomobile 回调(将实时下载的内容转发到 android)?

我正在研究如何使用 gomobile 开发 android sdk,这是我的用例:

sdk 将处理文件下载并将其实时接收的内容发送到andoird,这怎么可能呢?

我尝试过这样的事情,返回一个 ReadCloser,然后 android 将从这个流中读取:

但是从编译的java类中,甚至没有这个方法,为什么?

我试图返回一个通道,但结果相同,而不是在目标 java 类中编译的事件。

有没有更好的方法来做到这一点?gomobile是否支持回调(go sdk调用android注册的这个回调)?我几乎找不到有关该回调用法的任何文档。

0 投票
2 回答
2029 浏览

go - Gomobile 包中没有导出的名称

我正在尝试将以下代码与 gomobile 绑定以将其导出为 iOS 框架。我之前已经成功完成了此操作,但由于某种原因,当我运行 bind 命令时,以下代码给了我错误 gomobile: no exports names in package 。该代码在作为 go 脚本运行时有效。

有任何想法吗?谢谢!

0 投票
1 回答
548 浏览

go - Gomobile 绑定委托/回调行为

任何人都知道在导出到 iOS 时是否有可能使用 gomobile 绑定来实现某种委托行为?

即我有一个处理iOS应用程序网络请求的go库,我需要它异步完成,这样它就不会挂起应用程序。

解决方案是发送一个 objc 完成块(我认为这不会起作用,因为我找不到将 objc 代码发送回 go 函数的方法)或实现某种委托,以便应用程序可以知道何时请求已完成。我已经尝试了我能想到的一切......有什么想法吗?谢谢!

0 投票
1 回答
937 浏览

java - 无法让 gomobile 绑定与 java 一起使用

去版本:1.7.5

GOPATH = D:/GoWork

反应原生版本 0.41

下面的代码是D:\GoWork\src\rngo\rngo\rngo.go的绑定 go 包

很简单,只返回一个字符串

从 > D:\GoWork\src\rngo运行以下命令

下面的详细输出似乎很好

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\classes.go

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\classes.h

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\classes.c

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gen\src\Java\interfaces.go rngo/rngo

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\fakegopath\pkg\android_arm\rngo\rngo.a 写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675 \gomobile_bind\go_rngomain.go

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\go_main.go

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\androidlib\main.go

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\android\src\main\java\rngo\Rngo.java

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\java_rngo.c

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\rngo.h

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\android\src\main\java\go\Universe.java

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\android\src\main\java\go\error.java

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\java_universe.c

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\universe.h

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\seq_android.go

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\seq_android.c

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\seq.h

写 C:\Users\Minty\AppData\Local\Temp\gomobile-work-855641675\gomobile_bind\seq.go

Java /C /Users/Minty/AppData/Local/Temp/gomobile-work-855641675/gomobile_bind 命令行参数 rngo/rngo Java

/C /Users/Minty/AppData/Local/Temp/gomobile-work-855641675/gomobile_bind 命令行参数 rngo/rngo Java

/C /Users/Minty/AppData/Local/Temp/gomobile-work-855641675/gomobile_bind 命令行参数 rngo/rngo Java

/C /Users/Minty/AppData/Local/Temp/gomobile-work-855641675/gomobile_bind

/# /C /Users/Minty/AppData/Local/Temp/gomobile-work-855641675/gomobile_bind

D:\Android\sdk\ndk-bundle\toolchains\x86_64-4.9\prebuilt\windows-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64 -linux-android/bin\ld: 警告:在搜索日志时跳过不兼容的 D:\Android\sdk\ndk-bundle\platforms\android-21\arch-x86_64/usr/lib/liblog.so

D:\Android\sdk\ndk-bundle\toolchains\x86_64-4.9\prebuilt\windows-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64 -linux-android/bin\ld: 警告:在搜索 dl 时跳过不兼容的 D:\Android\sdk\ndk-bundle\platforms\android-21\arch-x86_64/usr/lib/libdl.so

D:\Android\sdk\ndk-bundle\toolchains\x86_64-4.9\prebuilt\windows-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64 -linux-android/bin\ld: 警告:在搜索 c 时跳过不兼容的 D:\Android\sdk\ndk-bundle\platforms\android-21\arch-x86_64/usr/lib/libc.so

D:\Android\sdk\ndk-bundle\toolchains\x86_64-4.9\prebuilt\windows-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64 -linux-android/bin\ld: 警告:在搜索 dl 时跳过不兼容的 D:\Android\sdk\ndk-bundle\platforms\android-21\arch-x86_64/usr/lib/libdl.so

命令行参数

aar:AndroidManifest.xml

aar: proguard.txt

aar:classes.jar

罐子:META-INF/MANIFEST.MF

罐子:去/LoadJNI.class

罐子:去/Seq$GoObject.class

罐子:去/Seq$Proxy.class

罐子:去/Seq$Ref.class

罐子:去/Seq$RefMap.class

罐子:去/Seq$RefTracker.class

jar: go/Seq.class jar: go/Universe$proxyerror.class jar: go/Universe.class

罐子:去/error.class

罐子:rngo/Rngo.class

aar:jni/armeabi-v7a/libgojni.so

aar:jni/arm64-v8a/libgojni.so

aar: jni/x86/libgojni.so

aar: jni/x86_64/libgojni.so

aar: R.txt

aar:水库/

成功创建rngo.aar,因为没有错误消息,我可以在D:\GoWork\src\rngo\rngo.aar看到该文件

然后我从 android studio 手动将 rngo.aar 文件导入到 React Native 项目中

  1. 文件 > 新建 > 新建模块 > 导入 .aar/.jar 包 > #给出 rngo.aar 的路径#
  2. 文件 > 项目结构 > 应用程序 > 依赖项 > 模块依赖项 > rngo.aar

在 IDE 中,在 MainActivity.java 中我可以成功执行“import go.rngo.*;” ,但我无法获得“go.rngo.Rngo.RNcall()”“go.rngo.Rngo;” 去工作

在此处输入图像描述

构建这个 android 应用程序会引发错误“找不到符号”

D:\RN\gomobile\android\app\src\main\java\com\gomobile\RngoModule.java:10:错误:找不到符号

导入 go.rngo;
^

符号:rngo 类
位置:包 go
1 错误
:app:compileDebugJavaWithJavac FAILED

在此处输入图像描述

结论

我正在做一些非常错误的事情,我无法让这个简单的事情发挥作用。我在谷歌上浪费了一整天,但无济于事。因此,我需要帮助才能使其正常工作。我所需要的只是一个简单的 go 代码,它连接到响应本地 hasselfree。

感谢您阅读这一切。我很感激。

0 投票
1 回答
495 浏览

go - os.Create 和 os.Open 无法与 gomobile 一起使用并做出本机反应

上面的代码工作正常,代码的 javascript 方面也是如此。我一直err-CREATE-FILE在我的 javascript 中接收。所以os.Createos.Open没有按预期工作。

虽然是内部存储,不需要权限,但是我也在manifest文件中开启了权限,但是没有用。

OpenCreateReact Native 一起使用时,使用 gomobile 在 android 中使用文件的正确方法是什么?

更新:

adb logcat, 我 一直 得到 这个 到处

E/Vold ( 276): Failed to find mounted volume for /storage/sdcard1/Android/data/com.gotest/cache/

0 投票
1 回答
7664 浏览

go - gomobile 命令错误“未设置 android NDK 路径”

我在 Windows 中使用 Go 版本 1.7.5,当我尝试使用 gomobile 命令安装或绑定或构建时。它显示此错误 -“gomobile:未设置 Android NDK 路径。请使用通过 Android SDK 管理器安装的 ndk-bundle 或设置 -ndk 标志运行 gomobile init。” 我已将 NDK 路径添加到系统变量 $PATH,甚至手动安装了 NDK,但错误仍然存​​在。谢谢你的时间 !!

0 投票
2 回答
365 浏览

android-studio - Gomobile toolchain out of date, only in Android Studio

I am working with the latest gomobile, Go, and Android Studio builds.

When I run the gradle tasks from the terminal they work as expected and build the correct binaries, however from within Android Studio I receive an error:

Of course I have re run gomobile init many times and no change. My assumption is that Android Studio is using some config that I can not identify.

I appreciate this is a somewhat edge case question, but if anyone can point me in the right direction it would be helpful.

TLDR; ./gradlew myproj:bind works fine in terminal, fails in Android Studio.

0 投票
1 回答
614 浏览

ios - 是否可以使用 gomobile 渲染/查看 html?

是否可以使用 gomobile 呈现 html 页面?我想生成一个 http 服务器,它在单独的 go runtine 中提供 html/css,然后在 webview 中呈现它。JavaScript 应用程序(即 PhoneGap、ReactNative 等)有很多选择,所以我想知道为什么 Go 几乎没有。