[ 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)