diff --git a/lib/base-package-manager.ts b/lib/base-package-manager.ts index a534fb799d..5c4dbbf9ad 100644 --- a/lib/base-package-manager.ts +++ b/lib/base-package-manager.ts @@ -138,7 +138,8 @@ export abstract class BasePackageManager implements INodePackageManager { flag === "dist-tags" || flag === "versions" || flag === "name" || - flag === "gradle" + flag === "gradle" || + flag === "version_info" ) { array.push(` ${flag}`); continue; diff --git a/lib/constants.ts b/lib/constants.ts index 74feb0505c..6713bd9c85 100644 --- a/lib/constants.ts +++ b/lib/constants.ts @@ -328,8 +328,8 @@ export class Hooks { } export class AndroidBuildDefaults { - public static GradleVersion = "4.4"; - public static GradleAndroidPluginVersion = "4.5.6"; + public static GradleVersion = "7.0.2"; + public static GradleAndroidPluginVersion = "7.0.4"; } export const PACKAGE_PLACEHOLDER_NAME = "__PACKAGE__"; diff --git a/lib/node-package-manager.ts b/lib/node-package-manager.ts index c86c101357..254ff7e5e5 100644 --- a/lib/node-package-manager.ts +++ b/lib/node-package-manager.ts @@ -131,7 +131,12 @@ export class NodePackageManager extends BasePackageManager { } catch (e) { this.$errors.fail(e.message); } - return JSON.parse(viewResult); + + try { + return JSON.parse(viewResult); + } catch (err) { + return null; + } } public async searchNpms(keyword: string): Promise { diff --git a/lib/pnpm-package-manager.ts b/lib/pnpm-package-manager.ts index 285ce882d6..f2de683552 100644 --- a/lib/pnpm-package-manager.ts +++ b/lib/pnpm-package-manager.ts @@ -99,8 +99,12 @@ export class PnpmPackageManager extends BasePackageManager { } catch (e) { this.$errors.fail(e.message); } - const result = JSON.parse(viewResult); - return result; + + try { + return JSON.parse(viewResult); + } catch (err) { + return null; + } } @exported("pnpm") diff --git a/lib/services/android-plugin-build-service.ts b/lib/services/android-plugin-build-service.ts index 68026282f0..a277e7dc87 100644 --- a/lib/services/android-plugin-build-service.ts +++ b/lib/services/android-plugin-build-service.ts @@ -431,6 +431,9 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { const projectRuntimeVersion = platformData.platformProjectService.getFrameworkVersion( projectData ); + runtimeGradleVersions = await this.getGradleVersions( + projectRuntimeVersion + ); this.$logger.trace( `Got gradle versions ${JSON.stringify( runtimeGradleVersions @@ -481,15 +484,39 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { runtimeVersion: string ): Promise { let runtimeGradleVersions: { - gradle: { version: string; android: string }; + versions: { gradle: string; gradleAndroid: string }; } = null; try { - const output = await this.$packageManager.view( + let output = await this.$packageManager.view( `${SCOPED_ANDROID_RUNTIME_NAME}@${runtimeVersion}`, - { gradle: true } + { version_info: true } ); - runtimeGradleVersions = { gradle: output }; + + if (!output) { + /** + * fallback to the old 'gradle' key in package.json + * + * format: + * + * gradle: { version: '6.4', android: '3.6.4' } + * + */ + output = await this.$packageManager.view( + `${SCOPED_ANDROID_RUNTIME_NAME}@${runtimeVersion}`, + { gradle: true } + ); + + const { version, android } = output; + + // covert output to the new format... + output = { + gradle: version, + gradleAndroid: android, + }; + } + + runtimeGradleVersions = { versions: output }; } catch (err) { this.$logger.trace( `Error while getting gradle data for android runtime from view command: ${err}` @@ -505,17 +532,18 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { } private getGradleVersionsCore(packageData: { - gradle: { version: string; android: string }; + versions: { gradle: string; gradleAndroid: string }; }): IRuntimeGradleVersions { - const packageJsonGradle = packageData && packageData.gradle; + const packageJsonGradle = packageData && packageData.versions; let runtimeVersions: IRuntimeGradleVersions = null; if ( packageJsonGradle && - (packageJsonGradle.version || packageJsonGradle.android) + (packageJsonGradle.gradle || packageJsonGradle.gradleAndroid) ) { runtimeVersions = {}; - runtimeVersions.gradleVersion = packageJsonGradle.version; - runtimeVersions.gradleAndroidPluginVersion = packageJsonGradle.android; + runtimeVersions.gradleVersion = packageJsonGradle.gradle; + runtimeVersions.gradleAndroidPluginVersion = + packageJsonGradle.gradleAndroid; } return runtimeVersions; diff --git a/lib/yarn-package-manager.ts b/lib/yarn-package-manager.ts index b235efdc10..d4d08ad7f0 100644 --- a/lib/yarn-package-manager.ts +++ b/lib/yarn-package-manager.ts @@ -95,8 +95,12 @@ export class YarnPackageManager extends BasePackageManager { this.$errors.fail(e.message); } - const result = JSON.parse(viewResult); - return result.data; + try { + const result = JSON.parse(viewResult); + return result.data; + } catch (err) { + return null; + } } @exported("yarn") diff --git a/vendor/aab-tool/README.txt b/vendor/aab-tool/README.txt index 1f19c387ab..36cfe7cd3b 100644 --- a/vendor/aab-tool/README.txt +++ b/vendor/aab-tool/README.txt @@ -1 +1 @@ -Downloaded from https://github.com/google/bundletool/releases/tag/0.10.3 \ No newline at end of file +Downloaded from https://github.com/google/bundletool/releases/tag/1.8.2 \ No newline at end of file diff --git a/vendor/aab-tool/bundletool.jar b/vendor/aab-tool/bundletool.jar old mode 100755 new mode 100644 index 68a2387345..c4e0cc7372 Binary files a/vendor/aab-tool/bundletool.jar and b/vendor/aab-tool/bundletool.jar differ diff --git a/vendor/gradle-plugin/build.gradle b/vendor/gradle-plugin/build.gradle index 657e49bb60..7fd52fc8f9 100644 --- a/vendor/gradle-plugin/build.gradle +++ b/vendor/gradle-plugin/build.gradle @@ -4,11 +4,11 @@ import static org.gradle.internal.logging.text.StyledTextOutput.Style apply plugin: 'com.android.library' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-parcelize' buildscript { - def computeKotlinVersion = { -> project.hasProperty("kotlinVersion") ? kotlinVersion : "1.4.21" } + def computeKotlinVersion = { -> project.hasProperty("kotlinVersion") ? kotlinVersion : "1.6.0" } def kotlinVersion = computeKotlinVersion() repositories { google() @@ -88,9 +88,9 @@ allprojects { } -def computeCompileSdkVersion = { -> project.hasProperty("compileSdk") ? compileSdk : 28 } +def computeCompileSdkVersion = { -> project.hasProperty("compileSdk") ? compileSdk : 31 } def computeBuildToolsVersion = { -> - project.hasProperty("buildToolsVersion") ? buildToolsVersion : "28.0.3" + project.hasProperty("buildToolsVersion") ? buildToolsVersion : "31.0.0" } android { @@ -100,28 +100,12 @@ android { buildToolsVersion computeBuildToolsVersion() defaultConfig { - targetSdkVersion 26 + targetSdkVersion 31 versionCode 1 versionName "1.0" } } -dependencies { - def supportVer = "28.0.0" - if (project.hasProperty("supportVersion")) { - supportVer = supportVersion - } - compileOnly "com.android.support:support-v4:$supportVer" - compileOnly "com.android.support:appcompat-v7:$supportVer" - - configurations.all { - resolutionStrategy.eachDependency { DependencyResolveDetails details -> - if (details.requested.group == "com.android.support" && !details.requested.name.startsWith("multidex")) { - details.useVersion supportVer - } - } - } -} def applyBeforePluginGradleConfiguration() { def appResourcesPath = getAppResourcesPath()