Skip to content

Commit c40dd27

Browse files
authored
Fix Gradle warning in a freshly flutter createed Android project (#122290)
Fix Gradle warning in a freshly `flutter create`ed Android project
1 parent 47dd992 commit c40dd27

File tree

44 files changed

+192
-43
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+192
-43
lines changed

dev/benchmarks/complex_layout/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/benchmarks/macrobenchmarks/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/benchmarks/microbenchmarks/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ subprojects {
4545
}
4646
}
4747

48-
task clean(type: Delete) {
48+
tasks.register("clean", Delete) {
4949
delete rootProject.buildDir
5050
}

dev/benchmarks/multiple_flutters/android/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ allprojects {
2525
}
2626
}
2727

28-
task clean(type: Delete) {
28+
tasks.register("clean", Delete) {
2929
delete rootProject.buildDir
30-
}
30+
}

dev/benchmarks/platform_views_layout/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/benchmarks/platform_views_layout_hybrid_composition/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/benchmarks/test_apps/stocks/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/integration_tests/abstract_method_smoke_test/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/integration_tests/android_custom_host_app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ allprojects {
1919
}
2020
}
2121

22-
task clean(type: Delete) {
22+
tasks.register("clean", Delete) {
2323
delete rootProject.buildDir
2424
}

dev/integration_tests/android_embedding_v2_smoke_test/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/integration_tests/android_host_app_v2_embedding/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ allprojects {
1919
}
2020
}
2121

22-
task clean(type: Delete) {
22+
tasks.register("clean", Delete) {
2323
delete rootProject.buildDir
2424
}

dev/integration_tests/android_semantics_testing/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/integration_tests/android_views/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/integration_tests/channels/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,6 @@ subprojects {
3030
project.evaluationDependsOn(':app')
3131
}
3232

33-
task clean(type: Delete) {
33+
tasks.register("clean", Delete) {
3434
delete rootProject.buildDir
3535
}

dev/integration_tests/deferred_components_test/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ subprojects {
4545
}
4646
}
4747

48-
task clean(type: Delete) {
48+
tasks.register("clean", Delete) {
4949
delete rootProject.buildDir
5050
}

dev/integration_tests/external_ui/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/integration_tests/flavors/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/integration_tests/flutter_gallery/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/integration_tests/gradle_deprecated_settings/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/integration_tests/hybrid_android_views/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/integration_tests/module_host_with_custom_build_v2_embedding/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ allprojects {
1919
}
2020
}
2121

22-
task clean(type: Delete) {
22+
tasks.register("clean", Delete) {
2323
delete rootProject.buildDir
2424
}

dev/integration_tests/non_nullable/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/integration_tests/platform_interaction/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/integration_tests/release_smoke_test/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/integration_tests/spell_check/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,6 @@ subprojects {
3030
project.evaluationDependsOn(':app')
3131
}
3232

33-
task clean(type: Delete) {
33+
tasks.register("clean", Delete) {
3434
delete rootProject.buildDir
3535
}

dev/integration_tests/ui/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/manual_tests/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

dev/tools/bin/generate_gradle_lockfiles.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ subprojects {
181181
}
182182
}
183183
184-
task clean(type: Delete) {
184+
tasks.register("clean", Delete) {
185185
delete rootProject.buildDir
186186
}
187187
''';

dev/tracing_tests/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,6 @@ subprojects {
3030
project.evaluationDependsOn(':app')
3131
}
3232

33-
task clean(type: Delete) {
33+
tasks.register("clean", Delete) {
3434
delete rootProject.buildDir
3535
}

examples/api/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@ subprojects {
2828
project.evaluationDependsOn(':app')
2929
}
3030

31-
task clean(type: Delete) {
31+
tasks.register("clean", Delete) {
3232
delete rootProject.buildDir
3333
}

examples/flutter_view/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

examples/hello_world/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

examples/image_list/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

examples/layers/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

examples/platform_channel/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

examples/platform_view/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ subprojects {
4646
}
4747
}
4848

49-
task clean(type: Delete) {
49+
tasks.register("clean", Delete) {
5050
delete rootProject.buildDir
5151
}

packages/flutter_tools/lib/src/android/gradle.dart

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import '../base/logger.dart';
1919
import '../base/net.dart';
2020
import '../base/platform.dart';
2121
import '../base/process.dart';
22+
import '../base/project_migrator.dart';
2223
import '../base/terminal.dart';
2324
import '../base/utils.dart';
2425
import '../build_info.dart';
@@ -31,6 +32,7 @@ import 'android_builder.dart';
3132
import 'android_studio.dart';
3233
import 'gradle_errors.dart';
3334
import 'gradle_utils.dart';
35+
import 'migrations/top_level_gradle_build_file_migration.dart';
3436
import 'multidex.dart';
3537

3638
/// The directory where the APK artifact is generated.
@@ -235,11 +237,17 @@ class AndroidGradleBuilder implements AndroidBuilder {
235237
int retry = 0,
236238
@visibleForTesting int? maxRetries,
237239
}) async {
238-
239240
if (!project.android.isSupportedVersion) {
240241
_exitWithUnsupportedProjectMessage(_usage, _logger.terminal);
241242
}
242243

244+
final List<ProjectMigrator> migrators = <ProjectMigrator>[
245+
TopLevelGradleBuildFileMigration(project.android, _logger),
246+
];
247+
248+
final ProjectMigration migration = ProjectMigration(migrators);
249+
migration.run();
250+
243251
final bool usesAndroidX = isAppUsingAndroidX(project.android.hostAppGradleRoot);
244252
if (usesAndroidX) {
245253
BuildEvent('app-using-android-x', type: 'gradle', flutterUsage: _usage).send();
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// Copyright 2014 The Flutter Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
import '../../base/file_system.dart';
6+
import '../../base/project_migrator.dart';
7+
import '../../project.dart';
8+
9+
const String _eagerCleanTaskDeclaration = '''
10+
task clean(type: Delete) {
11+
delete rootProject.buildDir
12+
}
13+
''';
14+
15+
const String _lazyCleanTaskDeclaration = '''
16+
tasks.register("clean", Delete) {
17+
delete rootProject.buildDir
18+
}
19+
''';
20+
21+
/// Migrate the Gradle "clean" task to use modern, lazy declaration style.
22+
class TopLevelGradleBuildFileMigration extends ProjectMigrator {
23+
TopLevelGradleBuildFileMigration(
24+
AndroidProject project,
25+
super.logger,
26+
) : _topLevelGradleBuildFile = project.hostAppGradleRoot.childFile('build.gradle');
27+
28+
final File _topLevelGradleBuildFile;
29+
30+
@override
31+
void migrate() {
32+
if (!_topLevelGradleBuildFile.existsSync()) {
33+
logger.printTrace('Top-level Gradle build file not found, skipping migration of task "clean".');
34+
return;
35+
}
36+
37+
processFileLines(_topLevelGradleBuildFile);
38+
}
39+
40+
@override
41+
String migrateFileContents(String fileContents) {
42+
final String newContents = fileContents.replaceAll(
43+
_eagerCleanTaskDeclaration,
44+
_lazyCleanTaskDeclaration,
45+
);
46+
47+
if (newContents != fileContents) {
48+
logger.printTrace('Migrating "clean" Gradle task to lazy declaration style.');
49+
}
50+
51+
return newContents;
52+
}
53+
}

packages/flutter_tools/templates/app_shared/android-java.tmpl/build.gradle.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ subprojects {
2626
project.evaluationDependsOn(':app')
2727
}
2828

29-
task clean(type: Delete) {
29+
tasks.register("clean", Delete) {
3030
delete rootProject.buildDir
3131
}

packages/flutter_tools/templates/app_shared/android-kotlin.tmpl/build.gradle.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ subprojects {
2626
project.evaluationDependsOn(':app')
2727
}
2828

29-
task clean(type: Delete) {
29+
tasks.register("clean", Delete) {
3030
delete rootProject.buildDir
3131
}

0 commit comments

Comments
 (0)