diff --git a/bin/lib/check_reqs.js b/bin/lib/check_reqs.js index 358c73f4..a7410e99 100644 --- a/bin/lib/check_reqs.js +++ b/bin/lib/check_reqs.js @@ -110,10 +110,13 @@ module.exports.check_java = function() { } } else if (isWindows) { // Try to auto-detect java in the default install paths. + var oldSilent = shelljs.config.silent; + shelljs.config.silent = true; var firstJdkDir = shelljs.ls(process.env['ProgramFiles'] + '\\java\\jdk*')[0] || shelljs.ls('C:\\Program Files\\java\\jdk*')[0] || shelljs.ls('C:\\Program Files (x86)\\java\\jdk*')[0]; + shelljs.config.silent = oldSilent; if (firstJdkDir) { // shelljs always uses / in paths. firstJdkDir = firstJdkDir.replace(/\//g, path.sep); @@ -195,7 +198,7 @@ module.exports.check_android = function() { }; module.exports.getAbsoluteAndroidCmd = function() { - return forgivingWhichSync('android').replace(/([ \\])/g, '\\$1'); + return forgivingWhichSync('android').replace(/(\s)/g, '\\$1'); }; module.exports.check_android_target = function(valid_target) { @@ -209,9 +212,12 @@ module.exports.check_android_target = function(valid_target) { .then(function(output) { if (output.split('\n').indexOf(valid_target) == -1) { var androidCmd = module.exports.getAbsoluteAndroidCmd(); - throw new Error('Please install Android target: "' + valid_target + '".\n' + + throw new Error('Please install Android target: "' + valid_target + '".\n\n' + 'Hint: Open the SDK manager by running: ' + androidCmd + '\n' + - 'Or install directly via: ' + androidCmd + ' update sdk --no-ui --all --filter "' + valid_target + '"'); + 'You will require:\n' + + '1. "SDK Platform" for ' + valid_target + '\n' + + '2. "Android SDK Platform-tools (latest)\n' + + '3. "Android SDK Build-tools" (latest)'); } }); }; diff --git a/bin/templates/cordova/lib/build.js b/bin/templates/cordova/lib/build.js index df2448c0..585b7af6 100644 --- a/bin/templates/cordova/lib/build.js +++ b/bin/templates/cordova/lib/build.js @@ -236,7 +236,7 @@ var builders = { // Find the recently-generated output APK files // Gradle can generate multiple output files; return all of them. getOutputFiles: function(build_type) { - var binDir = path.join(ROOT, 'build', 'apk'); + var binDir = path.join(ROOT, 'build', 'outputs', 'apk'); var candidates = find_files(binDir, function(candidate) { // Need to choose between release and debug .apk. if (build_type === 'debug') { diff --git a/bin/templates/project/AndroidManifest.xml b/bin/templates/project/AndroidManifest.xml index 01840463..b3b499fe 100644 --- a/bin/templates/project/AndroidManifest.xml +++ b/bin/templates/project/AndroidManifest.xml @@ -33,7 +33,7 @@ + android:hardwareAccelerated="true" android:supportsRtl="true"> + def props = new Properties() + props.load(reader) + signingConfig.keyAlias = ensureValueExists(propsFilePath, props, 'keyAlias') + signingConfig.keyPassword = ensureValueExists(propsFilePath, props, 'keyPassword') + signingConfig.storeFile = RelativePath.parse(true, ensureValueExists(propsFilePath, props, 'storeFile')).getFile(propsFile.getParentFile()) + signingConfig.storePassword = ensureValueExists(propsFilePath, props, 'storePassword') + } +} + + diff --git a/bin/templates/project/cordova.gradle b/bin/templates/project/cordova.gradle index 6c7d0ab3..ba73c93e 100644 --- a/bin/templates/project/cordova.gradle +++ b/bin/templates/project/cordova.gradle @@ -116,5 +116,5 @@ String getAndroidSdkDir() { } cordovaSdkVersion = getProjectTarget("android-19") -cordovaBuildToolsVersion = latestBuildToolsAvailable("19.0.0") +cordovaBuildToolsVersion = latestBuildToolsAvailable("19.1.0") diff --git a/framework/build.gradle b/framework/build.gradle index 59e1ae75..6ca284d3 100644 --- a/framework/build.gradle +++ b/framework/build.gradle @@ -25,7 +25,12 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:0.10.+' + // This should be updated with each cordova-android release. + // It can affect things like where the .apk is generated. + // It also dictates what the minimum android build-tools version + // that you need (Set in bin/templates/project/cordova.gradle). + // Be sure to also update the value in bin/templates/project. + classpath 'com.android.tools.build:gradle:0.12.+' } }