Phonegap / Android中的ExecuteSQL出错

时间:2012-02-15 13:24:42

标签: android database html5 sqlite cordova

更新我找到了解决方案: 好吧,我真是太蠢了......解决方案很简单,我只是在行添加了大小

db = window.openDatabase("parking", "1.0", "DB Parking");

现在我有了

db = window.openDatabase("parking", "1.0", "DB Parking",40000);

现在我的代码在我的Sensation ICS上正常运行。

你好

我是移动应用程序的法语开发人员。自1个月以来,我一直在使用phonegap来开发Android应用程序。在我的应用程序中,我使用数据库存储,我遇到了executeSql方法的问题。

使用Gingerbread(Android 2.3)中的设备(HTC Sensation),此代码运行正常:

var db;
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
       createDB();
}
function createDB() {  
        db = window.openDatabase("parking", "1.0", "DB Parking");
        db.transaction(verifDB, dbEmpty,dbNotEmpty);
}
function verifDB(tx)
{
        try
        {
           tx.executeSql("SELECT * FROM ETABLISSEMENT", [], dbNotEmpty, dbEmpty);
        }
        catch(err)
        {
           alert(err);
        }

 }
 function dbEmpty(tx)
 {
       db.transaction(populateDB, errorCB, successCB);
 }
 function dbNotEmpty()
 {
      //Do nothing
 }

但昨天我用冰淇淋三明治(ICS)升级了我的设备,今天我的应用程序崩溃了:

tx.executeSql("SELECT * FROM ETABLISSEMENT", [], dbNotEmpty, dbEmpty);

我查看了Eclipse中的LogCat选项卡,我看到了这个:

02-15 11:00:51.843: E/AndroidRuntime(8030): FATAL EXCEPTION: main
02-15 11:00:51.843: E/AndroidRuntime(8030): java.lang.NullPointerException
02-15 11:00:51.843: E/AndroidRuntime(8030):     at com.phonegap.Storage.executeSql(Storage.java:168)
02-15 11:00:51.843: E/AndroidRuntime(8030):     at com.phonegap.Storage.execute(Storage.java:87)
02-15 11:00:51.843: E/AndroidRuntime(8030):     at com.phonegap.api.PluginManager.exec(PluginManager.java:176)

我尝试使用Phonegap 1.3.0 1.4.1 ,我使用phonegap存档中Android文件夹中的phonegap.jar和phonegap.js。

我希望有人有解决方案。

感谢您的阅读。 ps:如果你在我的文中发现错误,请告诉我。谢谢。

0 个答案:

没有答案