Обновление Я нашел решение:
Ладно, я просто такой тупой ... Решение очень простое, я просто добавил размер в строке
db = window.openDatabase("parking", "1.0", "DB Parking");
Теперь у меня есть
db = window.openDatabase("parking", "1.0", "DB Parking",40000);
Теперь мой код работает правильно на моем Sensation ICS.
Hello
Я французский разработчик мобильных приложений. Я использую PhoneGap, чтобы разработать приложение для Android, с 1 месяца. В моем приложении я использую хранилище базы данных, и у меня проблема с методом executeSql.
На моем устройстве (HTC Sensation) в Gingerbread (Android 2.3) этот код работает правильно:
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
}
Но вчера я обновил свое устройство в Ice Cream Sandwich (ICS), а сегодня мое приложение вылетает на линии:
tx.executeSql("SELECT * FROM ETABLISSEMENT", [], dbNotEmpty, dbEmpty);
Я посмотрел на вкладке LogCat в Eclipse, и я увидел это:
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.jar и phonegap.js, которые находятся в папке Android в архиве Phonegap.
Надеюсь, у кого-то есть решение.
Спасибо, что прочитали.
PS: пожалуйста, дайте мне знать, если вы обнаружите ошибки в моем тексте, спасибо.