[ https://issues.apache.org/jira/browse/CB-8472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14325321#comment-14325321 ]
ASF subversion and git services commented on CB-8472: ----------------------------------------------------- Commit a506acd3df34eed42336e5c627403004b0ff80f1 in cordova-lib's branch refs/heads/master from [~TimBarham] [ https://git-wip-us.apache.org/repos/asf?p=cordova-lib.git;h=a506acd ] CB-8472 Can't find config.xml error installing browser platform after plugin. (close #167) 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