问题描述
我正在开发一个项目,在该项目中我需要使用 gomobile 工具从 Golang 代码库生成 APK 文件。 计划是能够在安卓平板电脑上运行它。 当我在平板电脑上安装 apk 文件时,通过 Android Studio 出现以下错误。
E/Go: panic: open C:/Users/ash/OneDrive/Desktop/go-workSpace/src/Myproject/config.json: no such file or directory
但是,在单击错误消息中的给定路径后,Android Studio 会打开它抱怨要查找的文件 (config.json)
这是我在 Go 中的源代码
exDir := "C:/Users/ash/OneDrive/Desktop/go-workSpace/src/Myproject/"
configFile,err := IoUtil.ReadFile(filepath.Join(filepath.Dir(exDir),"config.json")) // Look for the config file in the same directory as the executable
Check(err)
func Check(err error) {
if err != nil {
fmt.Println("Received generic error,panicking")
fmt.Println(err)
panic(err)
}
}
有什么建议可以修复文件路径吗?
解决方法
在查看此 thread 后。 这是官方的 go 支持 page。 所以,我想我需要
- 将所有文件移动到名为 assets 的目录中。
- assets 目录嵌入到“.APK”中,可以通过 Android 代码库访问。
import "golang.org/x/mobile/asset"
jsonFile,errOpen := asset.Open(config.json)
if errOpen != nil {
fmt.Println(errOpen)
}
defer jsonFile.Close()
buf,errRead := ioutil.ReadAll(jsonFile)
if errRead != nil {
fmt.Println(errRead)
}