【发布时间】:2014-11-27 10:50:26
【问题描述】:
我有一个项目使用 Cordova(离子框架)和 ngCordova 和 cordovaSQLite 插件。插件安装完毕,html中添加了js,androidmanifest中添加了WRITE_EXTERNAL_STORAGE权限,在我的config.xml中如下两行
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<preference name="AndroidExtraFilesystems" value="sdcard,cache" />
但是,当我运行示例代码时:
$cordovaSQLite.openDB({name: "wt.db"});
$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS people (id integer primary key, firstname text, lastname text)");
我收到错误E/cutils(1910): Failed to mkdirat(/storage/usbdisk0/Android): Read-only file system
我检查了我的 Android 设备(运行 AOKP 的 S3),我有一个空的 /storage/usbdisk0 但里面没有 Android 文件夹,即使使用超级用户我也无法创建它。我还有 /storage/sdcard0 和 /storage/sdcard1 和 /storage/emulated(0 和 legacy 内部链接到内部 sd 卡)。
我假设问题是插件用于存储数据库的默认目录对我的手机来说是错误的,但这意味着它可能对任何人的手机都是错误的。
如果我的假设是正确的,如何让插件将数据库放置在正确的位置?
【问题讨论】:
标签: android sqlite cordova ionic-framework