[ 
https://issues.apache.org/jira/browse/CB-8472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14322315#comment-14322315
 ] 

ASF GitHub Bot commented on CB-8472:
------------------------------------

GitHub user TimBarham opened a pull request:

    https://github.com/apache/cordova-lib/pull/167

    CB-8472 Can't find config.xml error installing platform after plugin.

    Recent changes to the process of adding a platform meant we were trying to 
trying to install plugins for the platform before we had called prepare() for 
the platform. Also, we were calling prepare() outside the loop that processes 
each platform, which meant the plaform local variable was not in scope, and we 
were passing a reference to a function called platform() to prepare() rather 
than a platform name.
    
    Fixed this by moving the prepare() call back where it used to be - just 
before we install plugins.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/MSOpenTech/cordova-lib CB-8472

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cordova-lib/pull/167.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #167
    
----
commit aa332e846058c405af30a6d313ce90783d9bd544
Author: Tim Barham <tim.bar...@microsoft.com>
Date:   2015-02-16T02:52:08Z

    CB-8472 Can't find config.xml error installing platform after plugin.
    
    Recent changes to the process of adding a platform meant we were trying to 
trying to install plugins for the platform before we had called prepare() for 
the platform. Also, we were calling prepare() outside the loop that processes 
each platform, which meant the plaform local variable was not in scope, and we 
were passing a reference to a function called platform() to prepare() rather 
than a platform name.
    
    Fixed this by moving the prepare() call back where it used to be - just 
before we install plugins.

----


> Exception (can't find config.xml) installing platform after plugins
> -------------------------------------------------------------------
>
>                 Key: CB-8472
>                 URL: https://issues.apache.org/jira/browse/CB-8472
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: CordovaLib
>    Affects Versions: Master
>            Reporter: Tim Barham
>            Priority: Critical
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> If you add a platform after adding a plugin, you can get an exception
> h4. Repro steps:
> # Create a new cordova app (e.g. 'cordova create TestApp').
> # Add a plugin (e.g. 'cordova plugin add org.apache.cordova.camera').
> # Add a platform (e.g. 'cordova platform add browser').
> h4. Result:
> The following error:
> {code}Failed to install 'org.apache.cordova.camera':Error: ENOENT, no such 
> file or
> directory 
> 'D:\tbarham\OneDrive\Documents\CordovaApps\TestApp\platforms\browser\config.xml'
>     at Error (native)
>     at Object.fs.openSync (fs.js:502:18)
>     at Object.fs.readFileSync (fs.js:354:15)
>     at Object.module.exports.parseElementtreeSync 
> (D:\GIT\Cordova\cordova-lib\cordova-lib\src\util\xml-helpers.js:118:27)
>     at Object.module.exports.package_name 
> (D:\GIT\Cordova\cordova-lib\cordova-lib\src\plugman\platforms\browser.js:51:38)
>     at PlatformMunger.generate_plugin_config_munge 
> (D:\GIT\Cordova\cordova-lib\cordova-lib\src\plugman\util\config-changes.js:264:54)
>     at PlatformMunger.add_plugin_changes 
> (D:\GIT\Cordova\cordova-lib\cordova-lib\src\plugman\util\config-changes.js:184:29)
>     at 
> D:\GIT\Cordova\cordova-lib\cordova-lib\src\plugman\util\config-changes.js:315:14
>     at Array.forEach (native)
>     at PlatformMunger_process [as process] 
> (D:\GIT\Cordova\cordova-lib\cordova-lib\src\plugman\util\config-changes.js:314:45){code}
> The problem is we are trying to install plugins for the platform before we 
> call prepare() for the platform, so config.xml has not been created yet.
> *Also note:* we are currently passing junk to prepare() - because of the 
> location of the call, the local variable _platform_ is not defined, and 
> instead we are passing a reference to a function _platform()_.



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

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

Reply via email to