我在 Android 中开发了一个小模块。在 Eclipse 中使用 debug- 或 run 方法在我的“真实”设备上测试应用程序时,一切正常。使用 Eclipse (Kepler)、PhoneGap 3.1 和 Android API 10 但是当我签署、导出、安装和运行应用程序时,一旦调用插件,我就会在调试器中看到以下错误:
文件:///android_asset/www/cordova.js:第 863 行:未捕获的类型错误:对象 org.apache.cordova.al@41ae5438 没有方法“执行”
未捕获的类型错误:对象 org.apache.cordova.al@41ae2400 在 file:///android_asset/www/cordova.js 处没有方法“exec”
我正在等待带有延迟对象的设备:
var def_deviceready = $.Deferred();
document.addEventListener("deviceready", deviceready, false);
function deviceready(){
def_deviceready.resolve();
}
function dbaccess(query, arg, callback) {
var dbaccess = cordova.require("cordova/plugin/dbaccess");
$.when(def_deviceready).done(dbaccess.getData(query, arg, callback));
};
dbaccess.js:
cordova.define("cordova/plugin/dbaccess", function (require, exports, module) {
var exec = require("cordova/exec");
module.exports = {
getData: function (query, arg, callback) {
exec(callback, function(){ callback('callbackerror')}, "DBAccess", query, arg);
}
};
});
DBAccess.java:
public class DBAccess extends CordovaPlugin {
HashMap<String, SQLiteDatabase> dbmap;
/**
* Constructor.
*/
public DBAccess() {
dbmap = new HashMap<String, SQLiteDatabase>();
}
@Override
public boolean execute(String action, String arg, CallbackContext callbackContext) throws JSONException {
Log.v("info", "This is what we got here: action=\'" + action +"\', arg=\'"+ arg +"\'.");
if (action != null) {
String Result = getData(action, arg);
this.echo(Result, callbackContext);
return true;
}
return false;
}
.....
.....
...而且 config.xml 还包含:
<feature name="DBAccess">
<param name="android-package" value="com.phonegap.plugin.dbAccess.DBAccess"/>
</feature>
任何帮助是极大的赞赏...