[
https://issues.apache.org/jira/browse/CB-6705?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jesse MacFadyen resolved CB-6705.
---------------------------------
Resolution: Fixed
Fix Version/s: 3.5.0
> 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
> Fix For: 3.5.0
>
> 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)