Android上的ngCordova sqlite插件数据库写入错误

Android上的ngCordova sqlite插件数据库写入错误,android,sqlite,cordova,ionic-framework,Android,Sqlite,Cordova,Ionic Framework,我有一个使用Cordova(离子框架)和ngCordova以及cordovaSQLite插件的项目。插件已安装,js已添加到html中,写入外部存储权限已添加到androidmanifest中,my config.xml中有以下两行 <preference name="AndroidPersistentFileLocation" value="Compatibility" /> <preference name="AndroidExtraFilesystems" value="

我有一个使用Cordova(离子框架)和ngCordova以及cordovaSQLite插件的项目。插件已安装,js已添加到html中,写入外部存储权限已添加到androidmanifest中,my config.xml中有以下两行

<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<preference name="AndroidExtraFilesystems" value="sdcard,cache" />
我收到错误
E/cutils(1910):无法访问mkdirat(/storage/usbdisk0/Android):只读文件系统

我检查了我的Android设备(S3运行AOKP),我有一个空的/storage/usbdisk0,但里面没有Android文件夹,即使是超级用户,我也无法创建它。我还有/storage/sdcard0和/storage/sdcard1和/storage/simulated(0和旧版内部链接到内部sd卡)

我假设问题是插件用来存储数据库的默认目录对我的手机是错误的,但这意味着它对任何人的手机都可能是错误的


如果我的假设是正确的,那么如何让插件将数据库放在正确的位置呢?

我只是阅读了我的config.xml首选项(我从一些文档中复制和粘贴的)实际上说了些什么。问题是
,这导致文件在错误的位置创建

如果我用
替换两个首选项行,我甚至不再需要请求WRITE\u EXTERNAL\u存储权限,它就可以正常工作了

$cordovaSQLite.openDB({name: "wt.db"});
$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS people (id integer primary key, firstname text, lastname text)");