今天,我将Cordova-CLI从3.5版升级到4.0版.在此之后,我将项目的平台支持更新到最新版本的
Android(因为它们现在单独更新).
从那以后,每当我运行cordova运行android时,我都会出现此错误,我收到以下错误:
Uncaught TypeError: Cannot set property connection of # which has only a getter at file:///android_asset/www/cordova.js:512
因此,应用程序中的许多事件都无法运行,导致该应用程序无法运行.
解决方法
我通过CLI 4.1.2获得了Android cordova 3.6.4的相同问题.我试图合并两个问题:CB-7868.第一次固定可以通过链接CB-7868,https://github.com/apache/cordova-js/pull/88进行锯切.第二个问题是关于CB-7868的评论.
见*************
function clobber(obj,key,value) { exports.replaceHookForTesting(obj,key); obj[key] = value; var needsProperty = false; try { obj[key] = value; } catch (e) { needsProperty = true; } // Getters can only be overridden by getters. if (obj[key] !== value) { if (needsProperty || obj[key] !== value) { utils.defineGetter(obj,function() { return value; } );
有了这两个修复. Android API14(4.0)和API15(4.0.3)上未报告任何错误.但是,我没有尝试相关的插件是否可以工作.这意味着我不知道修复是否正确.
另外,我通过CLI 4.1.2为IOS平台获得了cordova 3.7.0.我可以看到修复,https://github.com/apache/cordova-js/pull/88,已经应用于3.7.0 JS.但是,功能,clobber,仍然没有上面的修复.此外,没有适用于Android cordova的3.7.0.对于Android平台,它仍然是3.6.4.