Golang: Gomobile app 无法生成文件
Golang: Gomobile app cannot generate files
有没有人用过 gomobile app 并在 phones 中成功创建文件?我在 Android 4.4.2 的 Galaxy S4 上尝试了以下代码:
package main
import (
"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()
}
}
})
}
但是 phone 中没有创建文件。
我也试过一个叫"AnGoIde"的应用程序,它允许我们直接在Android中编写Go并编译,下面的代码能够创建"zzz.txt"文件:
package main
import "os"
func main(){
os.Create("zzz.txt")
}
最终我想将所有错误保存在一个文件中,这样我就可以看到导致我的应用程序崩溃的原因,而 AnGoIde 不支持很多包,所以我不能将它用于我的测试。有没有人用gomobile apps成功生成过文件?
p.s。我试图将目录指定为“/storage/emulated/0/Go/”,这与我存储 apk 文件的位置相同,但不起作用。
要写入文件,您的应用需要某种形式的许可。
如果您没有,请创建一个 AndroidManifest.xml
。您可以看到使用 -v
标志自动为您创建的文件 gomobile
的内容。 (gomobile build -v
)
在 <manifest>
和 </manifest>
标签之间添加以下行。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
再次构建应用程序。确保 gomobile
正在使用带有 -v
标志的清单文件。我能够通过 os.Create("/sdcard/zzz.txt")
创建文件。我还需要这个来调试,所以我不介意写入特定位置,即我的 sdcard。
当然,在您的 phone 中,位置可能会发生变化。
此外,如果您只需要一些日志,您可以安装 Android Debug Bridge 并使用 adb logcat。从您的 Go 应用中过滤掉日志 adb logcat | grep "I/GoLog"
会起作用。
有没有人用过 gomobile app 并在 phones 中成功创建文件?我在 Android 4.4.2 的 Galaxy S4 上尝试了以下代码:
package main
import (
"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()
}
}
})
}
但是 phone 中没有创建文件。
我也试过一个叫"AnGoIde"的应用程序,它允许我们直接在Android中编写Go并编译,下面的代码能够创建"zzz.txt"文件:
package main
import "os"
func main(){
os.Create("zzz.txt")
}
最终我想将所有错误保存在一个文件中,这样我就可以看到导致我的应用程序崩溃的原因,而 AnGoIde 不支持很多包,所以我不能将它用于我的测试。有没有人用gomobile apps成功生成过文件?
p.s。我试图将目录指定为“/storage/emulated/0/Go/”,这与我存储 apk 文件的位置相同,但不起作用。
要写入文件,您的应用需要某种形式的许可。
如果您没有,请创建一个 AndroidManifest.xml
。您可以看到使用 -v
标志自动为您创建的文件 gomobile
的内容。 (gomobile build -v
)
在 <manifest>
和 </manifest>
标签之间添加以下行。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
再次构建应用程序。确保 gomobile
正在使用带有 -v
标志的清单文件。我能够通过 os.Create("/sdcard/zzz.txt")
创建文件。我还需要这个来调试,所以我不介意写入特定位置,即我的 sdcard。
当然,在您的 phone 中,位置可能会发生变化。
此外,如果您只需要一些日志,您可以安装 Android Debug Bridge 并使用 adb logcat。从您的 Go 应用中过滤掉日志 adb logcat | grep "I/GoLog"
会起作用。