簡體   English   中英

Android的Cordova 2.5中openDatabase上的純硬件“未定義”數據庫錯誤-僅限首次嘗試

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM