【发布时间】:2011-06-07 21:45:31
【问题描述】:
我使用 HTML5 和 JavaScript(包括 JQTouch)构建了一个基本的手机应用程序,然后使用 PhoneGap 将其变成了一个 Android 应用程序(经过多次创伤 - 似乎 PhoneGap 和 Windows 计算机相处得不太好)。
该应用在 Chrome 中运行良好,但在 Android 模拟器上,LogCat 中显示以下错误:
06-07 21:38:51.711: DEBUG/WebCore(204): Console: ReferenceError: Can't find variable: openDatabase line: 9 source: file:///android_asset/www/handicap.js
这指的是 handicap.js 中的以下行:
db = openDatabase('Handicaps', '1.0', 'Handicaps', 65536);
这段代码的更广泛的上下文是:
// initialise all important functions
$(document).ready(function(){
$('#newrace form').submit(saveRace);
$('#newrace form').submit(setTitle);
$('#enterhandicaps form').submit(savePrediction);
$('#enterhandicaps form').submit(refreshEntries);
$('#calcraces').click(raceList);
// create database to hold data on predicted and actual times
db = openDatabase('Handicaps', '1.0', 'Handicaps', 65536);
db.transaction(
function(transaction) {
transaction.executeSql(
'CREATE TABLE IF NOT EXISTS predictions (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,racename TEXT NOT NULL, runner TEXT NOT NULL, prediction INTEGER, start TEXT, finish TEXT, position TEXT);'
);
transaction.executeSql(
'CREATE TABLE IF NOT EXISTS races (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,racename TEXT NOT NULL, date TEXT, distance REAL);'
);
transaction.executeSql(
'CREATE TABLE IF NOT EXISTS autocompletion (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,runner TEXT NOT NULL, value TEXT,racename TEXT NOT NULL);'
);
}
);
}
);
在查看其他人在 stackoverflow 上遇到类似问题时,我尝试了仅使用低于 2.2 的 Android 版本的建议,但这并没有帮助。还有其他建议吗? 可能是我错过的非常明显的事情,因为我对此完全陌生。 如果有帮助,该应用程序的 Web 浏览器形式的完整代码位于 https://github.com/fhr/Handicap-timer-app。
【问题讨论】:
标签: javascript android sqlite cordova