From a771c270c04bbc0a6660834ee883bba05f9fa741 Mon Sep 17 00:00:00 2001 From: Reid Baker Date: Tue, 25 Mar 2025 13:04:27 -0400 Subject: [PATCH 1/5] Enforce property assignment for compile sdk over method assignment --- .../all_packages/android/app/build.gradle | 2 +- script/tool/lib/src/gradle_check_command.dart | 12 +++++- .../tool/test/gradle_check_command_test.dart | 38 +++++++++++++++++-- 3 files changed, 45 insertions(+), 7 deletions(-) diff --git a/.ci/legacy_project/all_packages/android/app/build.gradle b/.ci/legacy_project/all_packages/android/app/build.gradle index 541aeed1a22..a5235c4f44e 100644 --- a/.ci/legacy_project/all_packages/android/app/build.gradle +++ b/.ci/legacy_project/all_packages/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace = "com.example.all_packages" - compileSdkVersion flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { applicationId "com.example.all_packages" diff --git a/script/tool/lib/src/gradle_check_command.dart b/script/tool/lib/src/gradle_check_command.dart index 4bdec9d6641..094ab9b6b46 100644 --- a/script/tool/lib/src/gradle_check_command.dart +++ b/script/tool/lib/src/gradle_check_command.dart @@ -421,12 +421,20 @@ for more details.'''; bool _validateCompileSdkUsage( RepositoryPackage package, List gradleLines) { - final RegExp linePattern = RegExp(r'^\s*compileSdk'); + final RegExp linePattern = RegExp(r'^\s*compileSdk.*\s+='); final RegExp legacySettingPattern = RegExp(r'^\s*compileSdkVersion'); final String? compileSdkLine = gradleLines .firstWhereOrNull((String line) => linePattern.hasMatch(line)); if (compileSdkLine == null) { - printError('${indentation}No compileSdk or compileSdkVersion found.'); + // Equals regex not found check for method pattern. + final RegExp compileSpacePattern = RegExp(r'^\s*compileSdk'); + final String? methodAssignmentLine = gradleLines + .firstWhereOrNull((String line) => compileSpacePattern.hasMatch(line)); + if (methodAssignmentLine == null) { + printError('${indentation}No compileSdk or compileSdkVersion found.'); + } else { + printError('${indentation}No compileSdk = found. Please use property assignment.'); + } return false; } if (legacySettingPattern.hasMatch(compileSdkLine)) { diff --git a/script/tool/test/gradle_check_command_test.dart b/script/tool/test/gradle_check_command_test.dart index 8cca215862b..9a1e0a5623f 100644 --- a/script/tool/test/gradle_check_command_test.dart +++ b/script/tool/test/gradle_check_command_test.dart @@ -44,6 +44,7 @@ void main() { bool commentNamespace = false, bool warningsConfigured = true, bool useDeprecatedCompileSdkVersion = false, + bool usePropertyAssignment = true, String compileSdk = '33', }) { final File buildGradle = package @@ -90,10 +91,10 @@ apply plugin: 'com.android.library' ${includeLanguageVersion ? javaSection : ''} android { ${includeNamespace ? namespace : ''} - ${useDeprecatedCompileSdkVersion ? 'compileSdkVersion' : 'compileSdk'} $compileSdk + ${useDeprecatedCompileSdkVersion ? 'compileSdkVersion' : 'compileSdk'} ${usePropertyAssignment ? '=' : ''} $compileSdk defaultConfig { - minSdkVersion 30 + minSdk ${usePropertyAssignment ? '=' : ''} 30 } ${warningsConfigured ? warningConfig : ''} compileOptions { @@ -224,6 +225,7 @@ include ":app" required bool includeNamespace, required bool commentNamespace, required bool includeNameSpaceAsDeclaration, + required bool usePropertyAssignment, }) { final File buildGradle = package .platformDirectory(FlutterPlatform.android) @@ -244,7 +246,7 @@ apply from: "\$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { ${includeNamespace ? namespace : ''} - compileSdk flutter.compileSdkVersion + compileSdk ${usePropertyAssignment ? '=' : ''} flutter.compileSdkVersion lintOptions { disable 'InvalidPackage' @@ -278,6 +280,7 @@ dependencies { bool includeBuildArtifactHub = true, bool includeSettingsArtifactHub = true, bool includeSettingsDocumentationArtifactHub = true, + bool usePropertyAssignment = true, }) { writeFakeExampleTopLevelBuildGradle( package, @@ -289,7 +292,8 @@ dependencies { writeFakeExampleAppBuildGradle(package, includeNamespace: includeNamespace, commentNamespace: commentNamespace, - includeNameSpaceAsDeclaration: includeNameSpaceAsDeclaration); + includeNameSpaceAsDeclaration: includeNameSpaceAsDeclaration, + usePropertyAssignment: usePropertyAssignment); writeFakeExampleSettingsGradle( package, includeArtifactHub: includeSettingsArtifactHub, @@ -1097,5 +1101,31 @@ dependencies { ]), ); }); + + test('fails if compileSdk uses the method assignment', () async { + const String packageName = 'a_package'; + final RepositoryPackage package = + createFakePackage(packageName, packagesDir, isFlutter: true); + writeFakePluginBuildGradle(package, + includeLanguageVersion: true, usePropertyAssignment: false); + writeFakeManifest(package); + final RepositoryPackage example = package.getExamples().first; + writeFakeExampleBuildGradles(example, pluginName: packageName, usePropertyAssignment: false); + writeFakeManifest(example, isApp: true); + + Error? commandError; + final List output = await runCapturingPrint( + runner, ['gradle-check'], errorHandler: (Error e) { + commandError = e; + }); + + expect(commandError, isA()); + expect( + output, + containsAllInOrder([ + contains('No compileSdk = found. Please use property assignment.'), + ]), + ); + }); }); } From 263d5f6bf8f29aef509c7ea9b8900c837fb1f4f9 Mon Sep 17 00:00:00 2001 From: Reid Baker Date: Tue, 25 Mar 2025 13:46:33 -0400 Subject: [PATCH 2/5] Formatting and quotes around compile sdk equals --- script/tool/lib/src/gradle_check_command.dart | 9 +++++---- script/tool/test/gradle_check_command_test.dart | 5 +++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/script/tool/lib/src/gradle_check_command.dart b/script/tool/lib/src/gradle_check_command.dart index 094ab9b6b46..1fa0f7074c9 100644 --- a/script/tool/lib/src/gradle_check_command.dart +++ b/script/tool/lib/src/gradle_check_command.dart @@ -426,14 +426,15 @@ for more details.'''; final String? compileSdkLine = gradleLines .firstWhereOrNull((String line) => linePattern.hasMatch(line)); if (compileSdkLine == null) { - // Equals regex not found check for method pattern. + // Equals regex not found check for method pattern. final RegExp compileSpacePattern = RegExp(r'^\s*compileSdk'); - final String? methodAssignmentLine = gradleLines - .firstWhereOrNull((String line) => compileSpacePattern.hasMatch(line)); + final String? methodAssignmentLine = gradleLines.firstWhereOrNull( + (String line) => compileSpacePattern.hasMatch(line)); if (methodAssignmentLine == null) { printError('${indentation}No compileSdk or compileSdkVersion found.'); } else { - printError('${indentation}No compileSdk = found. Please use property assignment.'); + printError( + '${indentation}No "compileSdk =" found. Please use property assignment.'); } return false; } diff --git a/script/tool/test/gradle_check_command_test.dart b/script/tool/test/gradle_check_command_test.dart index 9a1e0a5623f..0182ea7b898 100644 --- a/script/tool/test/gradle_check_command_test.dart +++ b/script/tool/test/gradle_check_command_test.dart @@ -1110,7 +1110,8 @@ dependencies { includeLanguageVersion: true, usePropertyAssignment: false); writeFakeManifest(package); final RepositoryPackage example = package.getExamples().first; - writeFakeExampleBuildGradles(example, pluginName: packageName, usePropertyAssignment: false); + writeFakeExampleBuildGradles(example, + pluginName: packageName, usePropertyAssignment: false); writeFakeManifest(example, isApp: true); Error? commandError; @@ -1123,7 +1124,7 @@ dependencies { expect( output, containsAllInOrder([ - contains('No compileSdk = found. Please use property assignment.'), + contains('No "compileSdk =" found. Please use property assignment.'), ]), ); }); From 44edef5f9689fdc77f172b1f6b971b00e1c2a78f Mon Sep 17 00:00:00 2001 From: Reid Baker Date: Tue, 25 Mar 2025 14:25:53 -0400 Subject: [PATCH 3/5] fix all instances of compileSdk using method set --- packages/camera/camera/example/android/app/build.gradle | 2 +- .../camera/camera_android/example/android/app/build.gradle | 2 +- .../camera_android_camerax/example/android/app/build.gradle | 4 ++-- packages/espresso/example/android/app/build.gradle | 2 +- .../example/android/app/build.gradle | 2 +- .../file_selector/example/android/app/build.gradle | 4 ++-- .../file_selector_android/example/android/app/build.gradle | 4 ++-- .../example/android/app/build.gradle | 4 ++-- packages/flutter_image/example/android/app/build.gradle | 4 ++-- packages/flutter_markdown/example/android/app/build.gradle | 2 +- .../example/android/app/build.gradle | 4 ++-- packages/go_router/example/android/app/build.gradle | 2 +- .../google_maps_flutter/example/android/app/build.gradle | 2 +- .../example/android/app/build.gradle | 2 +- .../google_sign_in/example/android/app/build.gradle | 2 +- .../google_sign_in_android/example/android/app/build.gradle | 2 +- .../image_picker/example/android/app/build.gradle | 2 +- .../image_picker_android/example/android/app/build.gradle | 2 +- .../in_app_purchase/example/android/app/build.gradle | 2 +- .../in_app_purchase_android/example/android/app/build.gradle | 2 +- .../interactive_media_ads/example/android/app/build.gradle | 4 ++-- .../local_auth/local_auth/example/android/app/build.gradle | 2 +- .../local_auth_android/example/android/app/build.gradle | 2 +- packages/palette_generator/example/android/app/build.gradle | 2 +- .../path_provider/example/android/app/build.gradle | 2 +- .../path_provider_android/example/android/app/build.gradle | 2 +- packages/pigeon/example/app/android/app/build.gradle | 4 ++-- .../example/android/app/build.gradle | 4 ++-- .../test_plugin/example/android/app/build.gradle | 4 ++-- .../quick_actions/example/android/app/build.gradle | 2 +- .../quick_actions_android/example/android/app/build.gradle | 2 +- packages/rfw/example/hello/android/app/build.gradle | 2 +- packages/rfw/example/local/android/app/build.gradle | 2 +- packages/rfw/example/remote/android/app/build.gradle | 2 +- .../shared_preferences/example/android/app/build.gradle | 2 +- .../example/android/app/build.gradle | 4 ++-- .../example/android/app/build.gradle | 4 ++-- .../url_launcher/example/android/app/build.gradle | 2 +- .../url_launcher_android/example/android/app/build.gradle | 2 +- .../video_player/example/android/app/build.gradle | 2 +- .../video_player_android/example/android/app/build.gradle | 2 +- .../webview_flutter/example/android/app/build.gradle | 2 +- .../webview_flutter_android/example/android/app/build.gradle | 2 +- 43 files changed, 55 insertions(+), 55 deletions(-) diff --git a/packages/camera/camera/example/android/app/build.gradle b/packages/camera/camera/example/android/app/build.gradle index 5e748985496..7a71866cbca 100644 --- a/packages/camera/camera/example/android/app/build.gradle +++ b/packages/camera/camera/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.cameraexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/camera/camera_android/example/android/app/build.gradle b/packages/camera/camera_android/example/android/app/build.gradle index 5e748985496..7a71866cbca 100644 --- a/packages/camera/camera_android/example/android/app/build.gradle +++ b/packages/camera/camera_android/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.cameraexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/camera/camera_android_camerax/example/android/app/build.gradle b/packages/camera/camera_android_camerax/example/android/app/build.gradle index aa54980dd3b..a5331be7303 100644 --- a/packages/camera/camera_android_camerax/example/android/app/build.gradle +++ b/packages/camera/camera_android_camerax/example/android/app/build.gradle @@ -24,8 +24,8 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.cameraxexample' - compileSdk flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/espresso/example/android/app/build.gradle b/packages/espresso/example/android/app/build.gradle index 25d542e9793..4356e42b246 100644 --- a/packages/espresso/example/android/app/build.gradle +++ b/packages/espresso/example/android/app/build.gradle @@ -23,7 +23,7 @@ if (flutterVersionName == null) { } android { - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). namespace "com.example.espresso_example" diff --git a/packages/extension_google_sign_in_as_googleapis_auth/example/android/app/build.gradle b/packages/extension_google_sign_in_as_googleapis_auth/example/android/app/build.gradle index 2eb0d8487fc..ad40c761f22 100644 --- a/packages/extension_google_sign_in_as_googleapis_auth/example/android/app/build.gradle +++ b/packages/extension_google_sign_in_as_googleapis_auth/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { } android { - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/file_selector/file_selector/example/android/app/build.gradle b/packages/file_selector/file_selector/example/android/app/build.gradle index 1dbd8c483a9..2daf1632553 100644 --- a/packages/file_selector/file_selector/example/android/app/build.gradle +++ b/packages/file_selector/file_selector/example/android/app/build.gradle @@ -24,8 +24,8 @@ if (flutterVersionName == null) { android { namespace "dev.flutter.plugins.file_selector_example" - compileSdk flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/file_selector/file_selector_android/example/android/app/build.gradle b/packages/file_selector/file_selector_android/example/android/app/build.gradle index 8dc0ee13967..e7ffeeb25ef 100644 --- a/packages/file_selector/file_selector_android/example/android/app/build.gradle +++ b/packages/file_selector/file_selector_android/example/android/app/build.gradle @@ -24,8 +24,8 @@ if (flutterVersionName == null) { android { namespace "dev.flutter.packages.file_selector_android_example" - compileSdk flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/flutter_adaptive_scaffold/example/android/app/build.gradle b/packages/flutter_adaptive_scaffold/example/android/app/build.gradle index 1eafa2f094d..70aec2de7a6 100644 --- a/packages/flutter_adaptive_scaffold/example/android/app/build.gradle +++ b/packages/flutter_adaptive_scaffold/example/android/app/build.gradle @@ -23,8 +23,8 @@ if (flutterVersionName == null) { } android { - compileSdk flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/flutter_image/example/android/app/build.gradle b/packages/flutter_image/example/android/app/build.gradle index 2d2b5fbb11f..a703e9c7fe4 100644 --- a/packages/flutter_image/example/android/app/build.gradle +++ b/packages/flutter_image/example/android/app/build.gradle @@ -24,8 +24,8 @@ if (flutterVersionName == null) { android { namespace "com.example.example" - compileSdk flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/flutter_markdown/example/android/app/build.gradle b/packages/flutter_markdown/example/android/app/build.gradle index 0ae0c2b99a9..7b1b5f8b42f 100644 --- a/packages/flutter_markdown/example/android/app/build.gradle +++ b/packages/flutter_markdown/example/android/app/build.gradle @@ -23,7 +23,7 @@ if (flutterVersionName == null) { } android { - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle b/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle index ca44a28de38..eeb0c8c1ede 100644 --- a/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle +++ b/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle @@ -24,13 +24,13 @@ if (flutterVersionName == null) { android { - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "io.flutter.plugins.flutter_plugin_android_lifecycle_example" - minSdkVersion flutter.minSdkVersion + minSdkVersion = flutter.minSdkVersion targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/packages/go_router/example/android/app/build.gradle b/packages/go_router/example/android/app/build.gradle index 23d6dbf475e..8bc17a4122e 100644 --- a/packages/go_router/example/android/app/build.gradle +++ b/packages/go_router/example/android/app/build.gradle @@ -23,7 +23,7 @@ if (flutterVersionName == null) { } android { - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/google_maps_flutter/google_maps_flutter/example/android/app/build.gradle b/packages/google_maps_flutter/google_maps_flutter/example/android/app/build.gradle index 1151d176bc8..2debab676e6 100644 --- a/packages/google_maps_flutter/google_maps_flutter/example/android/app/build.gradle +++ b/packages/google_maps_flutter/google_maps_flutter/example/android/app/build.gradle @@ -23,7 +23,7 @@ if (flutterVersionName == null) { } android { - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/build.gradle b/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/build.gradle index 89933cddf6a..f868ce78c86 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/build.gradle +++ b/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.googlemapsexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/google_sign_in/google_sign_in/example/android/app/build.gradle b/packages/google_sign_in/google_sign_in/example/android/app/build.gradle index 1a30e11d0ad..3c1e0dee00b 100644 --- a/packages/google_sign_in/google_sign_in/example/android/app/build.gradle +++ b/packages/google_sign_in/google_sign_in/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.googlesigninexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/google_sign_in/google_sign_in_android/example/android/app/build.gradle b/packages/google_sign_in/google_sign_in_android/example/android/app/build.gradle index 1a30e11d0ad..3c1e0dee00b 100644 --- a/packages/google_sign_in/google_sign_in_android/example/android/app/build.gradle +++ b/packages/google_sign_in/google_sign_in_android/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.googlesigninexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/image_picker/image_picker/example/android/app/build.gradle b/packages/image_picker/image_picker/example/android/app/build.gradle index 72a711f6258..937413b5629 100755 --- a/packages/image_picker/image_picker/example/android/app/build.gradle +++ b/packages/image_picker/image_picker/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.imagepickerexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion testOptions.unitTests.includeAndroidResources = true diff --git a/packages/image_picker/image_picker_android/example/android/app/build.gradle b/packages/image_picker/image_picker_android/example/android/app/build.gradle index 1cf9730f735..831c2eccd7c 100755 --- a/packages/image_picker/image_picker_android/example/android/app/build.gradle +++ b/packages/image_picker/image_picker_android/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.imagepickerexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion testOptions.unitTests.includeAndroidResources = true diff --git a/packages/in_app_purchase/in_app_purchase/example/android/app/build.gradle b/packages/in_app_purchase/in_app_purchase/example/android/app/build.gradle index 3bb79c4d934..46a6f24eb54 100644 --- a/packages/in_app_purchase/in_app_purchase/example/android/app/build.gradle +++ b/packages/in_app_purchase/in_app_purchase/example/android/app/build.gradle @@ -62,7 +62,7 @@ android { } } - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/in_app_purchase/in_app_purchase_android/example/android/app/build.gradle b/packages/in_app_purchase/in_app_purchase_android/example/android/app/build.gradle index 99e88920897..0d7888893e2 100644 --- a/packages/in_app_purchase/in_app_purchase_android/example/android/app/build.gradle +++ b/packages/in_app_purchase/in_app_purchase_android/example/android/app/build.gradle @@ -53,7 +53,7 @@ if (!configured) { android { namespace 'io.flutter.plugins.inapppurchaseexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion signingConfigs { release { diff --git a/packages/interactive_media_ads/example/android/app/build.gradle b/packages/interactive_media_ads/example/android/app/build.gradle index 5d5473c5469..dfc0d95664b 100644 --- a/packages/interactive_media_ads/example/android/app/build.gradle +++ b/packages/interactive_media_ads/example/android/app/build.gradle @@ -24,8 +24,8 @@ if (flutterVersionName == null) { android { namespace "dev.flutter.packages.interactive_media_ads_example" - compileSdk flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/local_auth/local_auth/example/android/app/build.gradle b/packages/local_auth/local_auth/example/android/app/build.gradle index 8831037f187..6f07e909021 100644 --- a/packages/local_auth/local_auth/example/android/app/build.gradle +++ b/packages/local_auth/local_auth/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.localauthexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/local_auth/local_auth_android/example/android/app/build.gradle b/packages/local_auth/local_auth_android/example/android/app/build.gradle index 8831037f187..6f07e909021 100644 --- a/packages/local_auth/local_auth_android/example/android/app/build.gradle +++ b/packages/local_auth/local_auth_android/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.localauthexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/palette_generator/example/android/app/build.gradle b/packages/palette_generator/example/android/app/build.gradle index f54c5160b67..9122007193a 100644 --- a/packages/palette_generator/example/android/app/build.gradle +++ b/packages/palette_generator/example/android/app/build.gradle @@ -17,7 +17,7 @@ if (flutterVersionName == null) { } android { - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/path_provider/path_provider/example/android/app/build.gradle b/packages/path_provider/path_provider/example/android/app/build.gradle index 5b5b05e6b0b..21a8a014717 100644 --- a/packages/path_provider/path_provider/example/android/app/build.gradle +++ b/packages/path_provider/path_provider/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.pathproviderexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/path_provider/path_provider_android/example/android/app/build.gradle b/packages/path_provider/path_provider_android/example/android/app/build.gradle index 5b5b05e6b0b..21a8a014717 100644 --- a/packages/path_provider/path_provider_android/example/android/app/build.gradle +++ b/packages/path_provider/path_provider_android/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.pathproviderexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/pigeon/example/app/android/app/build.gradle b/packages/pigeon/example/app/android/app/build.gradle index e1c8af4f404..e562c9c67bb 100644 --- a/packages/pigeon/example/app/android/app/build.gradle +++ b/packages/pigeon/example/app/android/app/build.gradle @@ -24,8 +24,8 @@ if (flutterVersionName == null) { android { namespace "dev.flutter.pigeon_example_app" - compileSdk flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle index b6364e4df79..66f3c27e083 100644 --- a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle +++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle @@ -24,8 +24,8 @@ if (flutterVersionName == null) { android { namespace 'com.example.alternate_language_test_plugin_example' - compileSdk flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/pigeon/platform_tests/test_plugin/example/android/app/build.gradle b/packages/pigeon/platform_tests/test_plugin/example/android/app/build.gradle index 3cba4a9ea20..f204b4ade53 100644 --- a/packages/pigeon/platform_tests/test_plugin/example/android/app/build.gradle +++ b/packages/pigeon/platform_tests/test_plugin/example/android/app/build.gradle @@ -24,8 +24,8 @@ if (flutterVersionName == null) { android { namespace 'com.example.test_plugin_example' - compileSdk flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/quick_actions/quick_actions/example/android/app/build.gradle b/packages/quick_actions/quick_actions/example/android/app/build.gradle index 4fda6d0de9b..43e1634a35d 100644 --- a/packages/quick_actions/quick_actions/example/android/app/build.gradle +++ b/packages/quick_actions/quick_actions/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.quickactionsexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/quick_actions/quick_actions_android/example/android/app/build.gradle b/packages/quick_actions/quick_actions_android/example/android/app/build.gradle index 3da90333a77..59127027fe1 100644 --- a/packages/quick_actions/quick_actions_android/example/android/app/build.gradle +++ b/packages/quick_actions/quick_actions_android/example/android/app/build.gradle @@ -26,7 +26,7 @@ def androidXTestVersion = '1.4.0' android { namespace 'io.flutter.plugins.quickactionsexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/rfw/example/hello/android/app/build.gradle b/packages/rfw/example/hello/android/app/build.gradle index cf90978c28b..3414ee4cf74 100644 --- a/packages/rfw/example/hello/android/app/build.gradle +++ b/packages/rfw/example/hello/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'dev.flutter.rfw.examples.hello' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/rfw/example/local/android/app/build.gradle b/packages/rfw/example/local/android/app/build.gradle index b6830923e5d..9cec6ac529e 100644 --- a/packages/rfw/example/local/android/app/build.gradle +++ b/packages/rfw/example/local/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'dev.flutter.rfw.examples.local' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/rfw/example/remote/android/app/build.gradle b/packages/rfw/example/remote/android/app/build.gradle index 836c054e4f1..d2a501f58f7 100644 --- a/packages/rfw/example/remote/android/app/build.gradle +++ b/packages/rfw/example/remote/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'dev.flutter.rfw.examples.remote' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/shared_preferences/shared_preferences/example/android/app/build.gradle b/packages/shared_preferences/shared_preferences/example/android/app/build.gradle index 2cd7b34c698..5b517660839 100644 --- a/packages/shared_preferences/shared_preferences/example/android/app/build.gradle +++ b/packages/shared_preferences/shared_preferences/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.sharedpreferencesexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion sourceSets { main.java.srcDirs += 'src/main/kotlin' diff --git a/packages/shared_preferences/shared_preferences_android/example/android/app/build.gradle b/packages/shared_preferences/shared_preferences_android/example/android/app/build.gradle index bc4a61bb363..15bfd60a335 100644 --- a/packages/shared_preferences/shared_preferences_android/example/android/app/build.gradle +++ b/packages/shared_preferences/shared_preferences_android/example/android/app/build.gradle @@ -37,8 +37,8 @@ if (flutterVersionName == null) { android { namespace "dev.flutter.plugins.shared_preferences_example" - compileSdk flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/two_dimensional_scrollables/example/android/app/build.gradle b/packages/two_dimensional_scrollables/example/android/app/build.gradle index f186a680484..cee5fc37a97 100644 --- a/packages/two_dimensional_scrollables/example/android/app/build.gradle +++ b/packages/two_dimensional_scrollables/example/android/app/build.gradle @@ -24,8 +24,8 @@ if (flutterVersionName == null) { android { namespace 'dev.flutter.packages.two_dimensional_scrollables.example' - compileSdk flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/url_launcher/url_launcher/example/android/app/build.gradle b/packages/url_launcher/url_launcher/example/android/app/build.gradle index 6e095484d7e..5425ebdfc7e 100644 --- a/packages/url_launcher/url_launcher/example/android/app/build.gradle +++ b/packages/url_launcher/url_launcher/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.urllauncherexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/url_launcher/url_launcher_android/example/android/app/build.gradle b/packages/url_launcher/url_launcher_android/example/android/app/build.gradle index 6e095484d7e..5425ebdfc7e 100644 --- a/packages/url_launcher/url_launcher_android/example/android/app/build.gradle +++ b/packages/url_launcher/url_launcher_android/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.urllauncherexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/video_player/video_player/example/android/app/build.gradle b/packages/video_player/video_player/example/android/app/build.gradle index 176610b9936..d543c76cf6c 100644 --- a/packages/video_player/video_player/example/android/app/build.gradle +++ b/packages/video_player/video_player/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.videoplayerexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/video_player/video_player_android/example/android/app/build.gradle b/packages/video_player/video_player_android/example/android/app/build.gradle index 73242b32cff..a004af0c2e3 100644 --- a/packages/video_player/video_player_android/example/android/app/build.gradle +++ b/packages/video_player/video_player_android/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.videoplayerexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_11 diff --git a/packages/webview_flutter/webview_flutter/example/android/app/build.gradle b/packages/webview_flutter/webview_flutter/example/android/app/build.gradle index 8ec364a9fa4..471f4082d12 100644 --- a/packages/webview_flutter/webview_flutter/example/android/app/build.gradle +++ b/packages/webview_flutter/webview_flutter/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.webviewflutterexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { diff --git a/packages/webview_flutter/webview_flutter_android/example/android/app/build.gradle b/packages/webview_flutter/webview_flutter_android/example/android/app/build.gradle index 97b5678d7a2..78de78e10f9 100644 --- a/packages/webview_flutter/webview_flutter_android/example/android/app/build.gradle +++ b/packages/webview_flutter/webview_flutter_android/example/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace 'io.flutter.plugins.webviewflutterexample' - compileSdk flutter.compileSdkVersion + compileSdk = flutter.compileSdkVersion defaultConfig { From 5ebeea8f87104f8bd53495017b1f522202f75102 Mon Sep 17 00:00:00 2001 From: Reid Baker Date: Tue, 25 Mar 2025 14:52:13 -0400 Subject: [PATCH 4/5] dont change lifecyle minsdkVersion --- .../example/android/app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle b/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle index eeb0c8c1ede..3c835ffaf03 100644 --- a/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle +++ b/packages/flutter_plugin_android_lifecycle/example/android/app/build.gradle @@ -30,7 +30,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "io.flutter.plugins.flutter_plugin_android_lifecycle_example" - minSdkVersion = flutter.minSdkVersion + minSdkVersion flutter.minSdkVersion targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName From e076a1ab4a9859716c3420e4bf0cc6b53b8febb9 Mon Sep 17 00:00:00 2001 From: Reid Baker <1063596+reidbaker@users.noreply.github.com> Date: Tue, 25 Mar 2025 15:31:10 -0400 Subject: [PATCH 5/5] leave legacy project alone. --- .ci/legacy_project/all_packages/android/app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/legacy_project/all_packages/android/app/build.gradle b/.ci/legacy_project/all_packages/android/app/build.gradle index a5235c4f44e..541aeed1a22 100644 --- a/.ci/legacy_project/all_packages/android/app/build.gradle +++ b/.ci/legacy_project/all_packages/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { android { namespace = "com.example.all_packages" - compileSdk = flutter.compileSdkVersion + compileSdkVersion flutter.compileSdkVersion defaultConfig { applicationId "com.example.all_packages"