diff --git a/packages/flutter_tools/test/integration.shard/android_plugin_example_app_build_test.dart b/packages/flutter_tools/test/integration.shard/android_plugin_example_app_build_test.dart index 57d84ddcf4..e7e120abd6 100644 --- a/packages/flutter_tools/test/integration.shard/android_plugin_example_app_build_test.dart +++ b/packages/flutter_tools/test/integration.shard/android_plugin_example_app_build_test.dart @@ -45,19 +45,6 @@ void main() { final Directory exampleAppDir = tempDir.childDirectory(testName).childDirectory('example'); - final File buildGradleFile = exampleAppDir.childDirectory('android').childFile('build.gradle.kts'); - expect(buildGradleFile, exists); - - final String buildGradle = buildGradleFile.readAsStringSync(); - final RegExp androidPluginRegExp = - RegExp(r'com\.android\.tools\.build:gradle:(\d+\.\d+\.\d+)'); - - // Use AGP 7.2.0 - final String newBuildGradle = buildGradle.replaceAll( - androidPluginRegExp, 'com.android.tools.build:gradle:7.2.0'); - buildGradleFile.writeAsStringSync(newBuildGradle); - - // Run flutter build apk using AGP 7.2.0 result = processManager.runSync([ flutterBin, ...getLocalEngineArguments(), diff --git a/packages/flutter_tools/test/integration.shard/isolated/native_assets_agp_version_test.dart b/packages/flutter_tools/test/integration.shard/isolated/native_assets_agp_version_test.dart index 4272a7552f..ed53b76902 100644 --- a/packages/flutter_tools/test/integration.shard/isolated/native_assets_agp_version_test.dart +++ b/packages/flutter_tools/test/integration.shard/isolated/native_assets_agp_version_test.dart @@ -16,7 +16,7 @@ const String packageName = 'package_with_native_assets'; /// The AGP versions to run these tests against. final List agpVersions = [ - '8.4' + '8.4.0' ]; /// The build modes to target for each flutter command that supports passing @@ -51,50 +51,59 @@ for (final String agpVersion in agpVersions) { final Directory packageDirectory = await createTestProject(packageName, tempDirectory); final Directory exampleDirectory = packageDirectory.childDirectory('example'); - File buildGradleFile = exampleDirectory.childDirectory('android').childFile('build.gradle'); - if (!buildGradleFile.existsSync()) { - buildGradleFile = exampleDirectory.childDirectory('android').childFile('build.gradle.kts'); - } - File appBuildGradleFile = exampleDirectory.childDirectory('android').childDirectory('app').childFile('build.gradle'); if (!appBuildGradleFile.existsSync()) { appBuildGradleFile = exampleDirectory.childDirectory('android').childDirectory('app').childFile('build.gradle.kts'); } - expect(buildGradleFile, exists); + final File settingsGradleFile = exampleDirectory.childDirectory('android').childFile('settings.gradle.kts'); + expect(appBuildGradleFile, exists); + expect(settingsGradleFile, exists); // Use expected AGP version. - final String buildGradle = buildGradleFile.readAsStringSync(); + final String settingsGradle = settingsGradleFile.readAsStringSync(); + final RegExp androidPluginRegExp = - RegExp(r'com\.android\.tools\.build:gradle:(\d+\.\d+\.\d+)'); - final String newBuildGradle = buildGradle.replaceAll( - androidPluginRegExp, 'com.android.tools.build:gradle:$agpVersion'); - buildGradleFile.writeAsStringSync(newBuildGradle); + RegExp(r'id\("com\.android\.application"\)\s+version\s+"([^"]+)"\s+apply\s+false'); + expect(androidPluginRegExp.firstMatch(settingsGradle), isNotNull); + + final String newSettingsGradle = settingsGradle.replaceAll( + androidPluginRegExp, 'id("com.android.application") version "$agpVersion" apply false'); + settingsGradleFile.writeAsStringSync(newSettingsGradle); // Use Android app with multiple flavors. final String appBuildGradle = appBuildGradleFile.readAsStringSync().replaceAll('\r\n', '\n'); final RegExp buildTypesBlockRegExp = RegExp(r'buildTypes {\n[ \t]+release {((.|\n)*)\n[ \t]+}\n[ \t]+}'); - final String buildTypesBlock = buildTypesBlockRegExp.firstMatch(appBuildGradle)!.toString(); + final String buildTypesBlock = buildTypesBlockRegExp.firstMatch(appBuildGradle)![0]!; final String appBuildGradleSegmentDefiningFlavors = ''' $buildTypesBlock - flavorDimensions "mode" + flavorDimensions += "mode" productFlavors { - flavorOne {} - flavorTwo {} - flavorThree {} + create("flavorOne") { + dimension = "mode" + } + create("flavorTwo") { + dimension = "mode" + } + create("flavorThree") { + dimension = "mode" + } } '''; - appBuildGradle.replaceFirst( + final String newAppBuildGradle = appBuildGradle.replaceFirst( buildTypesBlockRegExp, appBuildGradleSegmentDefiningFlavors); + appBuildGradleFile.writeAsStringSync(newAppBuildGradle); final ProcessResult result = processManager.runSync( [ flutterBin, 'build', 'apk', + '--flavor', + 'flavorOne', '--$buildMode', ], workingDirectory: exampleDirectory.path,