@@ -240,18 +240,28 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
240
240
}
241
241
242
242
private async getRuntimeGradleVersions ( projectDir : string ) : Promise < IRuntimeGradleVersions > {
243
- const runtimeVersions : IRuntimeGradleVersions = { } ;
244
243
const registryData = await this . $npm . getRegistryPackageData ( TNS_ANDROID_RUNTIME_NAME ) ;
245
- let runtimeVersion : string = registryData [ "dist-tags" ] . latest ;
244
+ let runtimeGradleVersions : IRuntimeGradleVersions = null ;
246
245
if ( projectDir ) {
247
- runtimeVersion = this . $platformService . getCurrentPlatformVersion (
246
+ const projectRuntimeVersion = this . $platformService . getCurrentPlatformVersion (
248
247
this . $devicePlatformsConstants . Android ,
249
248
this . $projectDataService . getProjectData ( projectDir ) ) ;
249
+ runtimeGradleVersions = this . getGradleVersions ( registryData . versions [ projectRuntimeVersion ] ) ;
250
250
}
251
251
252
- const latestPackageData = registryData . versions [ runtimeVersion ] ;
253
- const packageJsonGradle = latestPackageData && latestPackageData . gradle ;
254
- if ( packageJsonGradle ) {
252
+ if ( ! runtimeGradleVersions ) {
253
+ const latestRuntimeVersion = registryData [ "dist-tags" ] . latest ;
254
+ runtimeGradleVersions = this . getGradleVersions ( registryData . versions [ latestRuntimeVersion ] ) ;
255
+ }
256
+
257
+ return runtimeGradleVersions || { } ;
258
+ }
259
+
260
+ private getGradleVersions ( packageData : any ) : IRuntimeGradleVersions {
261
+ const packageJsonGradle = packageData && packageData . gradle ;
262
+ let runtimeVersions : IRuntimeGradleVersions = null ;
263
+ if ( packageJsonGradle && ( packageJsonGradle . version || packageJsonGradle . android ) ) {
264
+ runtimeVersions = { } ;
255
265
runtimeVersions . gradleVersion = packageJsonGradle . version ;
256
266
runtimeVersions . gradleAndroidPluginVersion = packageJsonGradle . android ;
257
267
}
@@ -271,7 +281,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
271
281
const gradleAndroidPluginVersionPlaceholder = "{{runtimeAndroidPluginVersion}}" ;
272
282
const gradleAndroidPluginVersion = version || "3.1.2" ;
273
283
274
- this . replaceFileContent ( buildGradlePath , gradleAndroidPluginVersionPlaceholder , gradleAndroidPluginVersion ) ;
284
+ this . replaceFileContent ( buildGradlePath , gradleAndroidPluginVersionPlaceholder , gradleAndroidPluginVersion ) ;
275
285
}
276
286
277
287
private replaceFileContent ( filePath : string , content : string , replacement : string ) {
0 commit comments