diff --git a/bin/lib/check_reqs.js b/bin/lib/check_reqs.js index eb0c4776..c064499f 100644 --- a/bin/lib/check_reqs.js +++ b/bin/lib/check_reqs.js @@ -69,17 +69,10 @@ module.exports.check_android = function() { } else if(!targets.output.match(valid_target)) { console.error('Please install Android target ' + valid_target.split('-')[1] + ' (the Android newest SDK). Make sure you have the latest Android tools installed as well. Run \"android\" from your command-line to install/update any missing SDKs or tools.'); return false; - } else { - var cmd = 'android update project -p ' + ROOT + ' -t ' + valid_target + ' 1> /dev/null 2>&1'; - var result = shell.exec(cmd, {silent:false, async:true}); - if(result.code > 0) { - console.error('Error updating the Cordova library to work with your Android environment.'); - return false; - } } return true; } module.exports.run = function() { return this.check_ant() && this.check_java && this.check_android(); -} \ No newline at end of file +} diff --git a/bin/lib/create.js b/bin/lib/create.js index c419c73a..3a486f3e 100755 --- a/bin/lib/create.js +++ b/bin/lib/create.js @@ -47,6 +47,20 @@ function exec(command) { } } +function ensureJarIsBuilt(version, target_api) { + if (!fs.existsSync(path.join(ROOT, 'framework', 'cordova-' + version + '.jar')) && fs.existsSync(path.join(ROOT, 'framework'))) { + var valid_target = check_reqs.get_target(); + console.log('Building jar'); + // update the cordova-android framework for the desired target + exec('android --silent update lib-project --target "' + target_api + '" --path "' + path.join(ROOT, 'framework') + '"'); + // compile cordova.js and cordova.jar + var cwd = process.cwd(); + process.chdir(path.join(ROOT, 'framework')); + exec('ant jar'); + process.chdir(cwd); + } +}; + /** * $ create [options] * @@ -104,17 +118,7 @@ module.exports.run = function(project_path, package_name, project_name, project_ console.log('\tAndroid target : ' + target_api); // build from source. distro should have these files - if(!fs.existsSync(path.join(ROOT, 'framework', 'cordova-' + VERSION + '.jar')) && fs.existsSync(path.join(ROOT, 'framework'))) { - console.log('Building jar and js files...'); - // update the cordova-android framework for the desired target - exec('android update project --target ' + target_api + ' --path ' + path.join(ROOT, 'framework')); - - // compile cordova.js and cordova.jar - var cwd = process.cwd(); - process.chdir(path.join(ROOT, 'framework')); - exec('ant jar'); - process.chdir(cwd); - } + ensureJarIsBuilt(VERSION, target_api); // create new android project var create_cmd = 'android create project --target "'+target_api+'" --path "'+path.relative(process.cwd(), project_path)+'" --package "'+package_name+'" --activity "'+safe_activity_name+'"';