android - Android 上 Cordova 2.5 中 openDatabase 上的纯硬件 'Undefined' 数据库错误 - 仅用于第一次尝试

标签 android cordova undefined opendatabase

刚刚将我的 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 似乎已经解决了我的问题! 难怪没有其他人似乎有同样的问题 - 没有其他人愚蠢到没有注意到大小参数!虽然我不知道为什么它在模拟器上工作并且在硬件上第二次和连续打开。总之,问题解决了。

关于android - Android 上 Cordova 2.5 中 openDatabase 上的纯硬件 'Undefined' 数据库错误 - 仅用于第一次尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15759727/

相关文章:

android - 我的 Android 应用程序应该使用哪个云数据库后端?

android - 监听更新并从服务器安装

javascript - 图像根据移动设备宽度适合 div,无需拉伸(stretch)

ios - 我可以使用 Xcode 6 将使用 2.5.0 Cordova 版本开发的 Phonegap 应用程序发布到 AppStore

c++ - 错误 C2027 : use of undefined type 'edge'

java - 在 Java 中接收 android 推送通知以进行测试

Android - 下载应用程序

ios - iOS 上的phonegap-nfc 在应用程序下打开“准备扫描”

javascript - 我新添加的按钮的值返回未定义或根本不返回任何内容

linux - 无法使用 makefile 进行编译 - 未定义对 `boost::re_detail 的引用