You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Jay Proulx (JIRA)" <ji...@apache.org> on 2014/06/17 21:27:04 UTC

[jira] [Commented] (CB-6705) platform add requires platforms and plugins dirs to exist

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

Jay Proulx commented on CB-6705:
--------------------------------

This has been fixed with 3.5.0, this can be closed.

> platform add requires platforms and plugins dirs to exist
> ---------------------------------------------------------
>
>                 Key: CB-6705
>                 URL: https://issues.apache.org/jira/browse/CB-6705
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: CLI
>    Affects Versions: 3.4.0
>         Environment: Ubuntu 12
>            Reporter: Sebastien Lorber
>            Assignee: Jesse MacFadyen
>            Priority: Trivial
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> {code}
> sebastien@sebastien-xps:stample-Phonegap (master *+)$ cordova platform add android
> Creating android project...
> Creating Cordova project for the Android platform:
> 	Path: platforms/android
> 	Package: co.stample
> 	Name: stample-phonegap
> 	Android target: android-19
> Copying template files...
> shell.js: internal error
> Error: ENOENT, no such file or directory 'platforms/android/assets'
>     at Object.fs.mkdirSync (fs.js:642:18)
>     at /home/sebastien/.cordova/lib/android/cordova/3.4.0/bin/node_modules/shelljs/src/cp.js:173:14
>     at Array.forEach (native)
>     at Object._cp (/home/sebastien/.cordova/lib/android/cordova/3.4.0/bin/node_modules/shelljs/src/cp.js:156:11)
>     at Object.cp (/home/sebastien/.cordova/lib/android/cordova/3.4.0/bin/node_modules/shelljs/src/common.js:172:23)
>     at /home/sebastien/.cordova/lib/android/cordova/3.4.0/bin/lib/create.js:166:19
>     at setShellFatal (/home/sebastien/.cordova/lib/android/cordova/3.4.0/bin/lib/create.js:45:5)
>     at /home/sebastien/.cordova/lib/android/cordova/3.4.0/bin/lib/create.js:164:9
>     at _fulfilled (/home/sebastien/.cordova/lib/android/cordova/3.4.0/bin/node_modules/q/q.js:798:54)
>     at self.promiseDispatch.done (/home/sebastien/.cordova/lib/android/cordova/3.4.0/bin/node_modules/q/q.js:827:30)
> Error: /home/sebastien/.cordova/lib/android/cordova/3.4.0/bin/create: Command failed with exit code 1
>     at ChildProcess.whenDone (/home/sebastien/Desktop/devhome/install/node-v0.10.24-linux-x64/lib/node_modules/cordova/src/superspawn.js:126:23)
>     at ChildProcess.EventEmitter.emit (events.js:98:17)
>     at maybeClose (child_process.js:735:16)
>     at Process.ChildProcess._handle.onexit (child_process.js:802:5)
> {code}
> This seems to be caused because I choose to not version control the platforms and plugins folders.
> If I do mkdir platforms I get the following error
> {code}
> sebastien@sebastien-xps:stample-Phonegap (master *+)$ mkdir platforms
> sebastien@sebastien-xps:stample-Phonegap (master *+)$ cordova platform add android
> Creating android project...
> Creating Cordova project for the Android platform:
> 	Path: platforms/android
> 	Package: co.stample
> 	Name: stample-phonegap
> 	Android target: android-19
> Copying template files...
> Running: android update project --subprojects --path "platforms/android" --target android-19 --library "CordovaLib"
> Resolved location of library project to: /home/sebastien/Desktop/stample-Phonegap/platforms/android/CordovaLib
> Updated and renamed default.properties to project.properties
> Updated local.properties
> No project name specified, using Activity name 'stamplephonegap'.
> If you wish to change it, edit the first line of build.xml.
> Added file platforms/android/build.xml
> Added file platforms/android/proguard-project.txt
> Updated project.properties
> Updated local.properties
> No project name specified, using project folder name 'CordovaLib'.
> If you wish to change it, edit the first line of build.xml.
> Added file platforms/android/CordovaLib/build.xml
> Added file platforms/android/CordovaLib/proguard-project.txt
> Project successfully created.
> Error: ENOENT, no such file or directory '/home/sebastien/Desktop/stample-Phonegap/plugins/android.json'
>     at Object.fs.openSync (fs.js:427:18)
>     at Object.fs.writeFileSync (fs.js:966:15)
>     at Object.save_platform_json (/home/sebastien/Desktop/devhome/install/node-v0.10.24-linux-x64/lib/node_modules/cordova/node_modules/plugman/src/util/config-changes.js:435:8)
>     at PlatformMunger_process [as process] (/home/sebastien/Desktop/devhome/install/node-v0.10.24-linux-x64/lib/node_modules/cordova/node_modules/plugman/src/util/config-changes.js:367:13)
>     at Object.exports.process (/home/sebastien/Desktop/devhome/install/node-v0.10.24-linux-x64/lib/node_modules/cordova/node_modules/plugman/src/util/config-changes.js:78:12)
>     at Object.handlePrepare (/home/sebastien/Desktop/devhome/install/node-v0.10.24-linux-x64/lib/node_modules/cordova/node_modules/plugman/src/prepare.js:73:20)
>     at /home/sebastien/Desktop/devhome/install/node-v0.10.24-linux-x64/lib/node_modules/cordova/src/prepare.js:101:25
>     at _fulfilled (/home/sebastien/Desktop/devhome/install/node-v0.10.24-linux-x64/lib/node_modules/cordova/node_modules/q/q.js:798:54)
>     at self.promiseDispatch.done (/home/sebastien/Desktop/devhome/install/node-v0.10.24-linux-x64/lib/node_modules/cordova/node_modules/q/q.js:827:30)
>     at Promise.promise.promiseDispatch (/home/sebastien/Desktop/devhome/install/node-v0.10.24-linux-x64/lib/node_modules/cordova/node_modules/q/q.js:760:13)
> {code}
> The problem is solved by doing mkdir platforms and mkdir plugins:
> {code}
> sebastien@sebastien-xps:stample-Phonegap (master *+)$ cordova platform add android
> Creating android project...
> Creating Cordova project for the Android platform:
> 	Path: platforms/android
> 	Package: co.stample
> 	Name: stample-phonegap
> 	Android target: android-19
> Copying template files...
> Running: android update project --subprojects --path "platforms/android" --target android-19 --library "CordovaLib"
> Resolved location of library project to: /home/sebastien/Desktop/stample-Phonegap/platforms/android/CordovaLib
> Updated and renamed default.properties to project.properties
> Updated local.properties
> No project name specified, using Activity name 'stamplephonegap'.
> If you wish to change it, edit the first line of build.xml.
> Added file platforms/android/build.xml
> Added file platforms/android/proguard-project.txt
> Updated project.properties
> Updated local.properties
> No project name specified, using project folder name 'CordovaLib'.
> If you wish to change it, edit the first line of build.xml.
> Added file platforms/android/CordovaLib/build.xml
> Added file platforms/android/CordovaLib/proguard-project.txt
> Project successfully created.
> {code}
> This would be better if the CLI recreated these folders in case of unexistance, or at least having a better fail-fast error message like "the platforms folder is missing" or something
> This bothers me because I create a phonegap starter app, and it forces me to version control these 2 folders, and git does not allow version control of empty folders as far as I know so I have to put an empty file here just to avoid asking the checkouters to manually create the folders themselves
> Not a big deal though but it should be easy to fix



--
This message was sent by Atlassian JIRA
(v6.2#6252)