我正在为android开发firefox的扩展,这是我的第一次尝试,我正面临困难时期,我正试图在sqlite文件上存储一些数据,使用Mozilla storage API来访问和存储使用扩展名存在于下载目录中的sqlite文件。我试过这段代码
var f = new FileUtils.File("file:///storage/sdcard0/Download/bd.sqlite");
file = FileUtils.getFile("ProfD", [f]);
mDBConn = Services.storage.openDatabase(file);
let stmt = mDBConn.createStatement("INSERT INTO try (k,url,track) VALUES(1,'twitter',12)");
stmt.executeAsync();
我收到了这个错误:
E/GeckoConsole( 7345): [JavaScript Error: "NS_ERROR_FILE_UNRECOGNIZED_PATH: Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsILocalFile.initWithPath]" {file: "resource://gre/modules/XPIProvider.jsm -> jar:file:///data/data/org.mozilla.firefox/files/mozilla/sru26yxk.default/extensions/trackDetect@fst.org.xpi!/bootstrap.js" line: 322}]
我真的输了,我知道路径有问题但是,它是正确的,我认为问题是如何将字符串路径转换为可以读取的URI。
答案 0 :(得分:0)
new FileUtils.File()
创建nsIFile
instance,而非nsIURI
。因此,您必须将文件路径传递给它,而不是URI:
var f = new FileUtils.File("/storage/sdcard0/Download/bd.sqlite");