[英]Hardware-only 'Undefined' database error on openDatabase in Cordova 2.5 on Android - only for first attempt
剛剛將我的android應用程序更新為Cordova 2.5,盡管它在模擬器中可以很好地運行,但它對HTC的要求卻產生了問題,以至於我嘗試時遇到“未定義”的數據庫錯誤
db = window.openDatabase("ProblemDirectoryDB", "1.0", "PhoneGap Demo", 100000);
但是,如果我第二次打開同一頁面,即使強制停止並重新啟動后,它也可以正常工作。 我可以通過刪除應用程序的數據來重新創建錯誤。 相關代碼如下。 非常感謝您的任何幫助/想法。
var db;
var dbCreated = false;
function onBodyLoad(){
$.mobile.loadingMessageTextVisible = true;
$.mobile.loadingMessage = "Loading...";
$.mobile.showPageLoadingMsg();
if (!window.device){
document.addEventListener("deviceready", onDeviceReady, false);
}
else {
onDeviceReady();
}
}
function onDeviceReady() {
db = window.openDatabase("ProblemDirectoryDB", "1.0", "PhoneGap Demo", 100000);
if (dbCreated){
db.transaction(getProblems, read_transaction_error);
}
else{
db.transaction(populateDB, create_transaction_error, populateDB_success);
}
navigator.splashscreen.hide();
}
function populateDB_success() {
dbCreated = true;
db.transaction(getProblems, transaction_error);
}
function create_transaction_error(tx, error) {
$.mobile.hidePageLoadingMsg();
alert("Create Database Error: " + error);
}
令人難以置信的是,經過數小時和幾乎全部的重寫之后,我終於在window.openDatabase
調用中發現了100000
字節size
參數-我的數據庫現在超過256K,因此只需將其更改為300000
似乎就解決了我的問題! 難怪沒有其他人似乎也遇到過同樣的問題-沒有其他人愚蠢到沒有注意到size參數! 盡管完全可以解釋為什么它可以在模擬器上運行,並且可以在硬件上進行第二次和連續的打開,但是我不知道。 無論如何,問題解決了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.