为了账号安全,请及时绑定邮箱和手机立即绑定

Golang:Gomobile 应用无法生成文件

Golang:Gomobile 应用无法生成文件

Go
慕田峪4524236 2021-11-22 18:20:28
有没有人以前使用过 gomobile 应用程序并成功在手机中创建文件?我在使用 Android 4.4.2 的 Galaxy S4 上尝试了以下代码:package mainimport (    "golang.org/x/mobile/app"    "golang.org/x/mobile/event/lifecycle"    "golang.org/x/mobile/event/paint"    "os")func main() {    os.Create("zzz.txt")    app.Main(func(a app.App) {        for e := range a.Events() {            switch e := a.Filter(e).(type) {            case lifecycle.Event:                _=e            case paint.Event:                a.Publish()            }        }    })}但是,手机中不会创建任何文件。我还尝试了一个名为“AnGoIde”的应用程序,它允许我们直接在Android中编写Go和编译,并且以下代码能够创建“zzz.txt”文件:package mainimport "os"func main(){    os.Create("zzz.txt")}最后,我想将所有错误保存在一个文件中,以便我可以查看导致我的应用程序崩溃的原因,而 AnGoIde 不支持许多软件包,因此我无法将其用于我的测试。有没有人以前用 gomobile 应用程序成功生成文件?ps 我试图将目录指定为“/storage/emulated/0/Go/”,这与我存储 apk 文件的位置相同,但不起作用。
查看完整描述

1 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

要写入文件,您的应用程序需要某种形式的权限。

如果您没有创建一个AndroidManifest.xml. 您可以gomobile使用该-v标志查看自动为您创建的文件内容。( gomobile build -v)

<manifest></manifest>标签之间添加以下行。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

再次构建应用程序。确保gomobile使用该-v标志使用您的清单文件。我能够通过os.Create("/sdcard/zzz.txt"). 我也需要它来调试,所以我不介意写入特定位置,即我的 sdcard。当然,在您的手机中,位置可能会改变。

此外,如果您只需要一些日志,您可以安装 Android Debug Bridge 并使用adb logcat。从你的 Go 应用中过滤掉日志adb logcat | grep "I/GoLog"是可行的。


查看完整回答
反对 回复 2021-11-22
  • 1 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信