使用 gomobile 工具从 Go to Android 生成“.APK”文件后无法识别文件

问题描述

我正在开发一个项目,在该项目中我需要使用 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。 所以,我想我需要

  1. 将所有文件移动到名为 assets 的目录中。
  2. 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)
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...