You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "John Little (JIRA)" <ji...@apache.org> on 2015/04/09 12:36:12 UTC

[jira] [Created] (CB-8830) application locks up when run with "cordova serve"

John Little created CB-8830:
-------------------------------

             Summary: application locks up when run with "cordova serve"
                 Key: CB-8830
                 URL: https://issues.apache.org/jira/browse/CB-8830
             Project: Apache Cordova
          Issue Type: Bug
          Components: Plugin Device
         Environment: windows 8.1 and OSx
Cordova 4.3.0
            Reporter: John Little


When the Device plugin is added to a cordova project and the software is tested using the "cordova serve" option (run a local web server for testing with a browser) the software locks up and fails to start.
There is an exception in the Device plugin as below
Exception calling native with command :: Device :: getDeviceInfo ::exception=ReferenceError: 'Windows' is undefined
This is not supprising as there is no device, it's just serving the app through a web server.
However the software locks up because the "onCordovaInfoReady" is never fired.
A simple fix is to modify the device.js file as below
   channel.onCordovaReady.subscribe(function() {
        var callFailed = true;  // NEW assume the getInfo fails
        me.getInfo(function(info) {
            callFailed = false;  // NEW it's all good
            //ignoring info.cordova returning from native, we should use value from cordova.version defined in cordova.js
            //TODO: CB-5105 native implementations should not return info.cordova
            var buildLabel = cordova.version;
            me.available = true;
            me.platform = info.platform;
            me.version = info.version;
            me.uuid = info.uuid;
            me.cordova = buildLabel;
            me.model = info.model;
            me.manufacturer = info.manufacturer || 'unknown';
            channel.onCordovaInfoReady.fire();
        },function(e) {
            // NEW failure will be handled below
            utils.alert("[ERROR] Error initializing Cordova: " + e);
        });
      // new code to stop the system locking up
      if(callFailed) {
        me.available = false;    // NEW can't be available as getInfo failed
        channel.onCordovaInfoReady.fire();   // NEW fire event to allow system to work
        }

With this mod inplace the software will work, obviously the device information is invalid.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org