From b20028c42b0363ec27df304ba74a7d3d6003ad9f Mon Sep 17 00:00:00 2001 From: Joe Bowser Date: Thu, 22 Jun 2017 13:46:18 -0700 Subject: [PATCH] The prepare step was broken, which breaks the CLI workflow. This was caused by hardcoding the Java directory, which is a very bad idea. --- bin/templates/cordova/Api.js | 3 +++ bin/templates/cordova/lib/prepare.js | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/bin/templates/cordova/Api.js b/bin/templates/cordova/Api.js index 283a86d4..7a68903d 100644 --- a/bin/templates/cordova/Api.js +++ b/bin/templates/cordova/Api.js @@ -74,6 +74,7 @@ function Api(platform, platformRootDir, events) { strings: path.join(self.root, 'res/values/strings.xml'), manifest: path.join(self.root, 'AndroidManifest.xml'), build: path.join(self.root, 'build'), + javaSrc: path.join(self.root, 'src'), // NOTE: Due to platformApi spec we need to return relative paths here cordovaJs: 'bin/templates/project/assets/www/cordova.js', cordovaJsSrc: 'cordova-js-src' @@ -87,6 +88,8 @@ function Api(platform, platformRootDir, events) { this.locations.configXml = path.join(self.root, 'app/src/main/res/xml/config.xml'); this.locations.strings = path.join(self.root, 'app/src/main/res/values/strings.xml'); this.locations.manifest = path.join(self.root, 'app/src/main/AndroidManifest.xml'); + //We could have Java Source, we could have other languages + this.locations.javaSrc = path.join(self.root, 'app/src/main/java/'); this.locations.www = path.join(self.root, 'app/src/main/assets/www'); this.locations.res = path.join(self.root, 'app/src/main/res'); } diff --git a/bin/templates/cordova/lib/prepare.js b/bin/templates/cordova/lib/prepare.js index 0ba12411..1532cab9 100644 --- a/bin/templates/cordova/lib/prepare.js +++ b/bin/templates/cordova/lib/prepare.js @@ -193,7 +193,9 @@ function updateProjectAccordingTo(platformConfig, locations) { .setTargetSdkVersion(platformConfig.getPreference('android-targetSdkVersion', 'android')) .write(); - var javaPattern = path.join(locations.root, 'src', orig_pkg.replace(/\./g, '/'), '*.java'); + //Java file paths shouldn't be hard coded + var javaPattern = path.join(locations.javaSrc, orig_pkg.replace(/\./g, '/'), '*.java'); + var java_files = shell.ls(javaPattern).filter(function(f) { return shell.grep(/extends\s+CordovaActivity/g, f); });