我正在開發一個擴展的Firefox上的Android,這是我的第一次嘗試,我面臨困難時,我試圖存儲一些數據在SQLite文件,使用Mozilla storage API通過使用擴展名訪問並存儲在下載目錄中的sqlite文件中。我想這個代碼FILE_UNRECOGNIZED_PATH在Firefox中的URI android擴展
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/[email protected]!/bootstrap.js" line: 322}]
我真的輸了,我知道有一個與路徑的問題,但是,它是正確的,我認爲問題是如何將字符串路徑轉換爲可讀取的URI。
非常感謝您的詳細回答,現在,我可以得到該文件,但出現了一個新的錯誤,它指向該行代碼:「INSERT INTO try(k,url,track)VALUES(1,'twitter',12)」); 錯誤是「NS_ERROR_FAILURE:組件返回失敗代碼:0x80004005(NS_ERROR_FAILURE)[mozIStorageConnection.createStatement]」 – user2102196
我根本沒有足夠的存儲經驗告訴你這裏可能有什麼問題,請問一個新問題? –
順便說一句,根據文檔:「如果聲明是要異步執行,你應該創建它與createAsyncStatement。」 –