1
package component
import (
"encoding/json"
"io/ioutil"
"os"
)
type LastComponent struct {
Name string
}
const fname = "componentfiles"
func Persist(comp string) string {
lcomp := LastComponent{Name: comp}
b, err := json.Marshal(lcomp)
if err != nil {
return "err-MARSHAL"
}
file, err := os.Create(fname)
if err != nil {
return "err-CREATE-FILE"
}
defer file.Close()
_, err = file.Write(b)
if err != nil {
return "err-FILE-WRITE-PROB"
}
return ""
}
func Component() string {
f, err := os.Open(fname)
if err != nil {
return "err-FILE-NOT-OPEN"
}
defer f.Close()
b, err := ioutil.ReadAll(f)
if err != nil {
return ""
}
var v LastComponent
json.Unmarshal(b, v)
return v.Name
}
}
上面的代碼工作正常,JavaScript代碼也是如此。我一直收到我的JavaScript裏面的err-CREATE-FILE
。所以os.Create
和os.Open
不按預期工作。os.Create和os.Open不能與gomobile一起工作並對原生作出反應
儘管它是內部存儲,但不需要權限,但我也打開了清單文件中的權限,但無濟於事。
什麼可能是正確的方式來Open
和Create
文件在android中使用gomobile時使用一邊React Native?
更新:
在adb logcat
,我老覺得所有的地方
E/Vold ( 276): Failed to find mounted volume for /storage/sdcard1/Android/data/com.gotest/cache/
os.Create的錯誤是什麼?你有沒有嘗試使用絕對路徑保存 - 像「/ sdcard/myfile」? – Steve101
是否可以在Java/ObjC/Swift中打開該文件? –