1

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);
}
4

1 に答える 1

1

信じられないことに、何時間にもわたってほぼ完全に書き直した後、ついに呼び出しで100000バイトsizeパラメーターを見つけましたwindow.openDatabase-私のDBは現在256Kを超えているので、単に変更するだけで300000問題が解決したようです!! 他の誰も同じ問題を抱えていないように見えるのも不思議ではありません - サイズパラメータに気付かないほど愚かな人は他にいません! エミュレーターと、ハードウェアでの 2 回目以降のオープンで機能した理由はよくわかりませんが、私にはわかりません。とにかく、問題は解決しました。

于 2013-11-11T23:06:37.157 に答える