From 6c622f51ace9a2a0bab73c5ec910e81f835199ba Mon Sep 17 00:00:00 2001 From: Joe Bowser Date: Fri, 12 Feb 2016 14:06:42 -0800 Subject: [PATCH 1/7] CB-8320: We look for a build.gradle to make sure it's Android, not an AndroidManifest, because it moved --- cordova-lib/src/cordova/metadata/android_parser.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cordova-lib/src/cordova/metadata/android_parser.js b/cordova-lib/src/cordova/metadata/android_parser.js index 2b3b21151..7f3c11415 100644 --- a/cordova-lib/src/cordova/metadata/android_parser.js +++ b/cordova-lib/src/cordova/metadata/android_parser.js @@ -31,7 +31,7 @@ var fs = require('fs'), function android_parser(project) { - if (!fs.existsSync(path.join(project, 'AndroidManifest.xml'))) { + if (!fs.existsSync(path.join(project, 'build.gradle'))) { throw new CordovaError('The provided path "' + project + '" is not an Android project.'); } @@ -39,6 +39,12 @@ function android_parser(project) { Parser.call(this, 'android', project); this.path = project; + + //If we have a gradle file but not a manifest, this is an Android Studio project + if(!fs.existsSync(path.join(project, "AndroidManifest.xml"))) { + this.path = path.join(project, 'app', 'src', 'main'); + } + this.strings = path.join(this.path, 'res', 'values', 'strings.xml'); this.manifest = path.join(this.path, 'AndroidManifest.xml'); this.android_config = path.join(this.path, 'res', 'xml', 'config.xml'); From 062f15f52469dd438ee2831c12e28434589fc759 Mon Sep 17 00:00:00 2001 From: Joe Bowser Date: Thu, 28 Jul 2016 12:42:47 -0700 Subject: [PATCH 2/7] CB-8320: Lint --- cordova-lib/src/cordova/metadata/android_parser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cordova-lib/src/cordova/metadata/android_parser.js b/cordova-lib/src/cordova/metadata/android_parser.js index 7f3c11415..3fdd4d17c 100644 --- a/cordova-lib/src/cordova/metadata/android_parser.js +++ b/cordova-lib/src/cordova/metadata/android_parser.js @@ -41,7 +41,7 @@ function android_parser(project) { this.path = project; //If we have a gradle file but not a manifest, this is an Android Studio project - if(!fs.existsSync(path.join(project, "AndroidManifest.xml"))) { + if(!fs.existsSync(path.join(project, 'AndroidManifest.xml'))) { this.path = path.join(project, 'app', 'src', 'main'); } From a25ddc260bbbf2aef254fb6cf91436d6edfd3ea3 Mon Sep 17 00:00:00 2001 From: Anis Kadri Date: Mon, 29 Aug 2016 16:28:55 +0200 Subject: [PATCH 3/7] config.xml has a different location in Android Studio --- cordova-common/src/ConfigChanges/ConfigFile.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cordova-common/src/ConfigChanges/ConfigFile.js b/cordova-common/src/ConfigChanges/ConfigFile.js index 179d54d14..5170581e6 100644 --- a/cordova-common/src/ConfigChanges/ConfigFile.js +++ b/cordova-common/src/ConfigChanges/ConfigFile.js @@ -193,6 +193,11 @@ function resolveConfigFilePath(project_dir, platform, file) { return filepath; } + // FIXME android studio + if(platform === "android" && !fs.existsSync(filepath)) { + filepath = path.join(project_dir, 'app', 'src', 'main', 'res', 'xml', 'config.xml'); + } + // None of the special cases matched, returning project_dir/file. return filepath; } From 99931eb03cc440e5fb5d7721abb92aa4938fe30e Mon Sep 17 00:00:00 2001 From: Anis Kadri Date: Mon, 29 Aug 2016 16:29:24 +0200 Subject: [PATCH 4/7] Adding error message to help debug platformApi loading errors --- cordova-lib/src/platforms/platforms.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cordova-lib/src/platforms/platforms.js b/cordova-lib/src/platforms/platforms.js index 725e2ba5e..9d25bfbd5 100644 --- a/cordova-lib/src/platforms/platforms.js +++ b/cordova-lib/src/platforms/platforms.js @@ -60,6 +60,8 @@ function getPlatformApi(platform, platformRootDir) { events.emit('warn', ' Using this version of Cordova with older version of cordova-' + platform + ' is being deprecated. Consider upgrading to cordova-' + platform + '@' + platforms[platform].apiCompatibleSince + ' or newer.'); + } else { + events.emit('warn', 'Error loading cordova-'+platform); } PlatformApi = require('./PlatformApiPoly'); From 6a6821ff645490aac5f616fdf468a528ac92464d Mon Sep 17 00:00:00 2001 From: Anis Kadri Date: Wed, 14 Sep 2016 17:04:23 -0700 Subject: [PATCH 5/7] undoing android_parser changes --- cordova-lib/src/cordova/metadata/android_parser.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/cordova-lib/src/cordova/metadata/android_parser.js b/cordova-lib/src/cordova/metadata/android_parser.js index 3fdd4d17c..2b3b21151 100644 --- a/cordova-lib/src/cordova/metadata/android_parser.js +++ b/cordova-lib/src/cordova/metadata/android_parser.js @@ -31,7 +31,7 @@ var fs = require('fs'), function android_parser(project) { - if (!fs.existsSync(path.join(project, 'build.gradle'))) { + if (!fs.existsSync(path.join(project, 'AndroidManifest.xml'))) { throw new CordovaError('The provided path "' + project + '" is not an Android project.'); } @@ -39,12 +39,6 @@ function android_parser(project) { Parser.call(this, 'android', project); this.path = project; - - //If we have a gradle file but not a manifest, this is an Android Studio project - if(!fs.existsSync(path.join(project, 'AndroidManifest.xml'))) { - this.path = path.join(project, 'app', 'src', 'main'); - } - this.strings = path.join(this.path, 'res', 'values', 'strings.xml'); this.manifest = path.join(this.path, 'AndroidManifest.xml'); this.android_config = path.join(this.path, 'res', 'xml', 'config.xml'); From 51355f71ca5ff54e727df13a5ab468c4988c0e2b Mon Sep 17 00:00:00 2001 From: Anis Kadri Date: Fri, 16 Sep 2016 15:35:41 -0700 Subject: [PATCH 6/7] Unifying quotes --- cordova-common/src/ConfigChanges/ConfigFile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cordova-common/src/ConfigChanges/ConfigFile.js b/cordova-common/src/ConfigChanges/ConfigFile.js index 5170581e6..0fe275de5 100644 --- a/cordova-common/src/ConfigChanges/ConfigFile.js +++ b/cordova-common/src/ConfigChanges/ConfigFile.js @@ -194,7 +194,7 @@ function resolveConfigFilePath(project_dir, platform, file) { } // FIXME android studio - if(platform === "android" && !fs.existsSync(filepath)) { + if(platform === 'android' && !fs.existsSync(filepath)) { filepath = path.join(project_dir, 'app', 'src', 'main', 'res', 'xml', 'config.xml'); } From 3a3e98bfbd701188cd85e177cd5d2e1d50640db4 Mon Sep 17 00:00:00 2001 From: Anis Kadri Date: Mon, 19 Sep 2016 15:52:18 -0700 Subject: [PATCH 7/7] PR #490 adding some clarifying comments --- cordova-common/src/ConfigChanges/ConfigFile.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cordova-common/src/ConfigChanges/ConfigFile.js b/cordova-common/src/ConfigChanges/ConfigFile.js index 0fe275de5..594d6e4f7 100644 --- a/cordova-common/src/ConfigChanges/ConfigFile.js +++ b/cordova-common/src/ConfigChanges/ConfigFile.js @@ -193,7 +193,8 @@ function resolveConfigFilePath(project_dir, platform, file) { return filepath; } - // FIXME android studio + // XXX this checks for android studio projects + // only if none of the options above are satisfied does this get called if(platform === 'android' && !fs.existsSync(filepath)) { filepath = path.join(project_dir, 'app', 'src', 'main', 'res', 'xml', 'config.xml'); }