diff --git a/dev/benchmarks/microbenchmarks/android/gradle/wrapper/gradle-wrapper.properties b/dev/benchmarks/microbenchmarks/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..5e6b542711 100644 --- a/dev/benchmarks/microbenchmarks/android/gradle/wrapper/gradle-wrapper.properties +++ b/dev/benchmarks/microbenchmarks/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip diff --git a/dev/benchmarks/microbenchmarks/android/settings.gradle b/dev/benchmarks/microbenchmarks/android/settings.gradle index 97b9e7934e..b8866055e0 100644 --- a/dev/benchmarks/microbenchmarks/android/settings.gradle +++ b/dev/benchmarks/microbenchmarks/android/settings.gradle @@ -23,8 +23,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false - id "org.jetbrains.kotlin.android" version "1.7.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/dev/benchmarks/multiple_flutters/android/build.gradle b/dev/benchmarks/multiple_flutters/android/build.gradle index ea717b215e..e1a10da492 100644 --- a/dev/benchmarks/multiple_flutters/android/build.gradle +++ b/dev/benchmarks/multiple_flutters/android/build.gradle @@ -10,7 +10,7 @@ buildscript { mavenCentral() } dependencies { - classpath "com.android.tools.build:gradle:7.3.0" + classpath "com.android.tools.build:gradle:8.1.0" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // Do not place your application dependencies here; they belong diff --git a/dev/benchmarks/multiple_flutters/android/gradle/wrapper/gradle-wrapper.properties b/dev/benchmarks/multiple_flutters/android/gradle/wrapper/gradle-wrapper.properties index 25c21cc15d..372057df29 100644 --- a/dev/benchmarks/multiple_flutters/android/gradle/wrapper/gradle-wrapper.properties +++ b/dev/benchmarks/multiple_flutters/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip diff --git a/dev/devicelab/bin/tasks/android_java11_dependency_smoke_tests.dart b/dev/devicelab/bin/tasks/android_java11_dependency_smoke_tests.dart index df1c6ad115..f516d552b6 100644 --- a/dev/devicelab/bin/tasks/android_java11_dependency_smoke_tests.dart +++ b/dev/devicelab/bin/tasks/android_java11_dependency_smoke_tests.dart @@ -16,23 +16,30 @@ import 'package:flutter_devicelab/framework/framework.dart'; // - Kotlin: No methodology as of yet. // (*) - support range defined in packages/flutter_tools/gradle/src/main/kotlin/dependency_version_checker.gradle.kts. List versionTuples = [ - VersionTuple(agpVersion: '7.0.1', gradleVersion: '7.0.2', kotlinVersion: '1.7.10'), - VersionTuple(agpVersion: '7.1.0', gradleVersion: '7.2', kotlinVersion: '1.7.10'), - VersionTuple(agpVersion: '7.2.0', gradleVersion: '7.3.3', kotlinVersion: '1.7.10'), - VersionTuple(agpVersion: '7.3.0', gradleVersion: '7.4', kotlinVersion: '1.7.10'), - VersionTuple(agpVersion: '7.4.0', gradleVersion: '7.5', kotlinVersion: '1.8.10'), + VersionTuple(agpVersion: '7.0.1', gradleVersion: '7.0.2', kotlinVersion: '1.7.10', compileSdkVersion: '34'), + VersionTuple(agpVersion: '7.1.0', gradleVersion: '7.2', kotlinVersion: '1.7.10', compileSdkVersion: '34'), + VersionTuple(agpVersion: '7.2.0', gradleVersion: '7.3.3', kotlinVersion: '1.7.10', compileSdkVersion: '34'), + VersionTuple(agpVersion: '7.3.0', gradleVersion: '7.4', kotlinVersion: '1.7.10', compileSdkVersion: '34'), + VersionTuple(agpVersion: '7.4.0', gradleVersion: '7.5', kotlinVersion: '1.8.10', compileSdkVersion: '34'), ]; // This test requires a Java version less than 17 due to the intentionally low // version of Gradle. We choose 11 because this was the primary version used in -// CI before 17, and hence it is also hosted on CIPD. +// CI before 17, and hence it is also hosted on CIPD. It also overrides to +// compileSdkVersion 34 because compileSdk 35 requires AGP 8.0+. // https://docs.gradle.org/current/userguide/compatibility.html Future main() async { /// The [FileSystem] for the integration test environment. const LocalFileSystem fileSystem = LocalFileSystem(); - final Directory tempDir = fileSystem.systemTempDirectory.createTempSync('flutter_android_dependency_version_tests'); + final Directory tempDir = fileSystem + .systemTempDirectory + .createTempSync('flutter_android_dependency_version_tests'); await task(() { - return buildFlutterApkWithSpecifiedDependencyVersions(versionTuples: versionTuples, tempDir: tempDir, localFileSystem: fileSystem); + return buildFlutterApkWithSpecifiedDependencyVersions( + versionTuples: versionTuples, + tempDir: tempDir, + localFileSystem: fileSystem + ); }); } diff --git a/dev/devicelab/bin/tasks/android_java17_dependency_smoke_tests.dart b/dev/devicelab/bin/tasks/android_java17_dependency_smoke_tests.dart index 346b37495e..4be1e6c27d 100644 --- a/dev/devicelab/bin/tasks/android_java17_dependency_smoke_tests.dart +++ b/dev/devicelab/bin/tasks/android_java17_dependency_smoke_tests.dart @@ -15,8 +15,9 @@ import 'package:flutter_devicelab/framework/framework.dart'; // https://developer.android.com/build/releases/past-releases/agp-8-4-0-release-notes. // - Kotlin: No methodology as of yet. // (*) - support range defined in packages/flutter_tools/gradle/src/main/kotlin/dependency_version_checker.gradle.kts. +// Note that compileSdk 35 requires AGP 8.1.0+, so override to compileSdk 34 for AGP 8.0. List versionTuples = [ - VersionTuple(agpVersion: '8.0.0', gradleVersion: '8.0', kotlinVersion: '1.8.22'), + VersionTuple(agpVersion: '8.0.0', gradleVersion: '8.0', kotlinVersion: '1.8.22', compileSdkVersion: '34'), VersionTuple(agpVersion: '8.1.0', gradleVersion: '8.0', kotlinVersion: '1.8.22'), VersionTuple(agpVersion: '8.2.0', gradleVersion: '8.2', kotlinVersion: '1.8.22'), VersionTuple(agpVersion: '8.3.0', gradleVersion: '8.4', kotlinVersion: '1.8.22'), diff --git a/dev/devicelab/bin/tasks/module_test.dart b/dev/devicelab/bin/tasks/module_test.dart index 4b31487e4b..84118421ec 100644 --- a/dev/devicelab/bin/tasks/module_test.dart +++ b/dev/devicelab/bin/tasks/module_test.dart @@ -449,7 +449,7 @@ class ModuleTest { Future main() async { await task(combine([ // ignore: avoid_redundant_argument_values - ModuleTest('module-gradle-7.6', gradleVersion: '7.6.3').call, - ModuleTest('module-gradle-7.6', gradleVersion: '7.6-rc-2').call, + ModuleTest('module-gradle-7.6', gradleVersion: '8.4').call, + ModuleTest('module-gradle-7.6', gradleVersion: '8.4-rc-3').call, ])); } diff --git a/dev/devicelab/lib/framework/dependency_smoke_test_task_definition.dart b/dev/devicelab/lib/framework/dependency_smoke_test_task_definition.dart index 207da50318..2424ac63fc 100644 --- a/dev/devicelab/lib/framework/dependency_smoke_test_task_definition.dart +++ b/dev/devicelab/lib/framework/dependency_smoke_test_task_definition.dart @@ -58,6 +58,7 @@ distributionUrl=https\://services.gradle.org/distributions/gradle-GRADLE_REPLACE '''; const String gradleReplacementString = 'GRADLE_REPLACE_ME'; +const String flutterCompileSdkString = 'flutter.compileSdkVersion'; /// A simple class containing a Kotlin, Gradle, and AGP version. class VersionTuple { @@ -65,16 +66,19 @@ class VersionTuple { VersionTuple({ required this.agpVersion, required this.gradleVersion, - required this.kotlinVersion + required this.kotlinVersion, + this.compileSdkVersion, }); String agpVersion; String gradleVersion; String kotlinVersion; + String? compileSdkVersion; @override String toString() { - return '(AGP version: $agpVersion, Gradle version: $gradleVersion, Kotlin version: $kotlinVersion)'; + return '(AGP version: $agpVersion, Gradle version: $gradleVersion, Kotlin version: $kotlinVersion' + '${(compileSdkVersion == null) ? '' : ', compileSdk version: $compileSdkVersion)'}'; } } @@ -93,7 +97,7 @@ Future buildFlutterApkWithSpecifiedDependencyVersions({ final Directory innerTempDir = tempDir.createTempSync(versions.gradleVersion); try { // Create a new flutter project. - section('Create new app with Gradle ${versions.gradleVersion}, AGP ${versions.agpVersion}, and Kotlin ${versions.kotlinVersion}'); + section('Create new app with dependency versions: $versions'); await flutter( 'create', options: [ @@ -105,6 +109,14 @@ Future buildFlutterApkWithSpecifiedDependencyVersions({ final String appPath = '${innerTempDir.absolute.path}/dependency_checker_app'; + if (versions.compileSdkVersion != null) { + final File appGradleBuild = localFileSystem.file(localFileSystem.path.join( + appPath, 'android', 'app', 'build.gradle')); + final String appBuildContent = appGradleBuild.readAsStringSync() + .replaceFirst(flutterCompileSdkString, versions.compileSdkVersion!); + appGradleBuild.writeAsStringSync(appBuildContent); + } + // Modify gradle version to passed in version. final File gradleWrapperProperties = localFileSystem.file(localFileSystem.path.join( appPath, 'android', 'gradle', 'wrapper', 'gradle-wrapper.properties')); diff --git a/dev/integration_tests/android_custom_host_app/SampleApp/build.gradle b/dev/integration_tests/android_custom_host_app/SampleApp/build.gradle index a6d113aee4..1ec1e7bc65 100644 --- a/dev/integration_tests/android_custom_host_app/SampleApp/build.gradle +++ b/dev/integration_tests/android_custom_host_app/SampleApp/build.gradle @@ -5,6 +5,7 @@ apply plugin: 'com.android.application' android { + namespace = "io.flutter.add2app" compileSdk 34 compileOptions { diff --git a/dev/integration_tests/android_custom_host_app/SampleApp/src/main/AndroidManifest.xml b/dev/integration_tests/android_custom_host_app/SampleApp/src/main/AndroidManifest.xml index 2f3b2713cd..6a73e6c126 100644 --- a/dev/integration_tests/android_custom_host_app/SampleApp/src/main/AndroidManifest.xml +++ b/dev/integration_tests/android_custom_host_app/SampleApp/src/main/AndroidManifest.xml @@ -3,8 +3,7 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> + xmlns:tools="http://schemas.android.com/tools"> diff --git a/dev/integration_tests/android_custom_host_app/build.gradle b/dev/integration_tests/android_custom_host_app/build.gradle index 90455ea0ad..592d125fbc 100644 --- a/dev/integration_tests/android_custom_host_app/build.gradle +++ b/dev/integration_tests/android_custom_host_app/build.gradle @@ -8,7 +8,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:8.1.0' } } diff --git a/dev/integration_tests/android_custom_host_app/gradle/wrapper/gradle-wrapper.properties b/dev/integration_tests/android_custom_host_app/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..5e6b542711 100644 --- a/dev/integration_tests/android_custom_host_app/gradle/wrapper/gradle-wrapper.properties +++ b/dev/integration_tests/android_custom_host_app/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip diff --git a/dev/integration_tests/android_driver_test/android/build.gradle b/dev/integration_tests/android_driver_test/android/build.gradle index 96ac13cda7..bedac9d2d4 100644 --- a/dev/integration_tests/android_driver_test/android/build.gradle +++ b/dev/integration_tests/android_driver_test/android/build.gradle @@ -2,6 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// This file is auto generated. +// To update all the build.gradle files in the Flutter repo, +// See dev/tools/bin/generate_gradle_lockfiles.dart. + allprojects { repositories { google() @@ -9,12 +13,20 @@ allprojects { } } -rootProject.buildDir = "../build" +rootProject.buildDir = '../build' + subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { - project.evaluationDependsOn(":app") + project.evaluationDependsOn(':app') + dependencyLocking { + ignoredDependencies.add('io.flutter:*') + lockFile = file("${rootProject.projectDir}/project-${project.name}.lockfile") + if (!project.hasProperty('local-engine-repo')) { + lockAllConfigurations() + } + } } tasks.register("clean", Delete) { diff --git a/dev/integration_tests/android_driver_test/android/settings.gradle b/dev/integration_tests/android_driver_test/android/settings.gradle index 9f47aeeecb..73a4cf75b6 100644 --- a/dev/integration_tests/android_driver_test/android/settings.gradle +++ b/dev/integration_tests/android_driver_test/android/settings.gradle @@ -2,6 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// This file is auto generated. +// To update all the settings.gradle files in the Flutter repo, +// See dev/tools/bin/generate_gradle_lockfiles.dart. + pluginManagement { def flutterSdkPath = { def properties = new Properties() @@ -9,9 +13,10 @@ pluginManagement { def flutterSdkPath = properties.getProperty("flutter.sdk") assert flutterSdkPath != null, "flutter.sdk not set in local.properties" return flutterSdkPath - }() + } + settings.ext.flutterSdkPath = flutterSdkPath() - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") repositories { google() @@ -20,10 +25,17 @@ pluginManagement { } } +buildscript { + dependencyLocking { + lockFile = file("${rootProject.projectDir}/buildscript-gradle.lockfile") + lockAllConfigurations() + } +} + plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.1.0" apply false - id "org.jetbrains.kotlin.android" version "1.8.22" apply false + id "org.jetbrains.kotlin.android" version "1.7.10" apply false } include ":app" diff --git a/dev/integration_tests/android_host_app_v2_embedding/app/build.gradle b/dev/integration_tests/android_host_app_v2_embedding/app/build.gradle index 9476474f25..71abced98b 100644 --- a/dev/integration_tests/android_host_app_v2_embedding/app/build.gradle +++ b/dev/integration_tests/android_host_app_v2_embedding/app/build.gradle @@ -5,6 +5,7 @@ apply plugin: 'com.android.application' android { + namespace = "io.flutter.add2app" compileSdk 34 compileOptions { diff --git a/dev/integration_tests/android_host_app_v2_embedding/app/src/main/AndroidManifest.xml b/dev/integration_tests/android_host_app_v2_embedding/app/src/main/AndroidManifest.xml index 2f3b2713cd..6a73e6c126 100644 --- a/dev/integration_tests/android_host_app_v2_embedding/app/src/main/AndroidManifest.xml +++ b/dev/integration_tests/android_host_app_v2_embedding/app/src/main/AndroidManifest.xml @@ -3,8 +3,7 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> + xmlns:tools="http://schemas.android.com/tools"> diff --git a/dev/integration_tests/android_host_app_v2_embedding/build.gradle b/dev/integration_tests/android_host_app_v2_embedding/build.gradle index 90455ea0ad..592d125fbc 100644 --- a/dev/integration_tests/android_host_app_v2_embedding/build.gradle +++ b/dev/integration_tests/android_host_app_v2_embedding/build.gradle @@ -8,7 +8,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:8.1.0' } } diff --git a/dev/integration_tests/deferred_components_test/android/build.gradle b/dev/integration_tests/deferred_components_test/android/build.gradle index e6a483e244..dbed9170e9 100644 --- a/dev/integration_tests/deferred_components_test/android/build.gradle +++ b/dev/integration_tests/deferred_components_test/android/build.gradle @@ -7,14 +7,14 @@ // See dev/tools/bin/generate_gradle_lockfiles.dart. buildscript { - ext.kotlin_version = '1.7.10' + ext.kotlin_version = '1.8.22' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:8.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } diff --git a/dev/integration_tests/deferred_components_test/android/component1/build.gradle b/dev/integration_tests/deferred_components_test/android/component1/build.gradle index 1f20e08f0e..b919b5b3bc 100644 --- a/dev/integration_tests/deferred_components_test/android/component1/build.gradle +++ b/dev/integration_tests/deferred_components_test/android/component1/build.gradle @@ -24,7 +24,7 @@ apply plugin: "com.android.dynamic-feature" android { namespace "io.flutter.integration.deferred_components_test.component1" - compileSdk 34 + compileSdk 35 sourceSets { applicationVariants.all { variant -> @@ -35,7 +35,7 @@ android { defaultConfig { minSdkVersion 21 - targetSdkVersion 33 + targetSdkVersion 35 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } diff --git a/dev/integration_tests/deferred_components_test/android/gradle/wrapper/gradle-wrapper.properties b/dev/integration_tests/deferred_components_test/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..5e6b542711 100644 --- a/dev/integration_tests/deferred_components_test/android/gradle/wrapper/gradle-wrapper.properties +++ b/dev/integration_tests/deferred_components_test/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip diff --git a/dev/integration_tests/external_textures/android/app/build.gradle b/dev/integration_tests/external_textures/android/app/build.gradle index ffbb8c664f..7e1c89b3a5 100644 --- a/dev/integration_tests/external_textures/android/app/build.gradle +++ b/dev/integration_tests/external_textures/android/app/build.gradle @@ -16,6 +16,7 @@ if (localPropertiesFile.exists()) { } android { + namespace = "io.flutter.externalui" compileSdk flutter.compileSdkVersion compileOptions { diff --git a/dev/integration_tests/external_textures/android/app/src/main/AndroidManifest.xml b/dev/integration_tests/external_textures/android/app/src/main/AndroidManifest.xml index e249e55506..15e50c3a80 100644 --- a/dev/integration_tests/external_textures/android/app/src/main/AndroidManifest.xml +++ b/dev/integration_tests/external_textures/android/app/src/main/AndroidManifest.xml @@ -2,8 +2,7 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> - + diff --git a/dev/integration_tests/external_textures/android/buildscript-gradle.lockfile b/dev/integration_tests/external_textures/android/buildscript-gradle.lockfile index 7e31538970..c90ba4af9c 100644 --- a/dev/integration_tests/external_textures/android/buildscript-gradle.lockfile +++ b/dev/integration_tests/external_textures/android/buildscript-gradle.lockfile @@ -1,65 +1,67 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -androidx.databinding:databinding-common:7.3.0=classpath -androidx.databinding:databinding-compiler-common:7.3.0=classpath -com.android.application:com.android.application.gradle.plugin:7.3.0=classpath -com.android.databinding:baseLibrary:7.3.0=classpath -com.android.tools.analytics-library:crash:30.3.0=classpath -com.android.tools.analytics-library:protos:30.3.0=classpath -com.android.tools.analytics-library:shared:30.3.0=classpath -com.android.tools.analytics-library:tracker:30.3.0=classpath +androidx.databinding:databinding-common:8.1.0=classpath +androidx.databinding:databinding-compiler-common:8.1.0=classpath +com.android.application:com.android.application.gradle.plugin:8.1.0=classpath +com.android.databinding:baseLibrary:8.1.0=classpath +com.android.tools.analytics-library:crash:31.1.0=classpath +com.android.tools.analytics-library:protos:31.1.0=classpath +com.android.tools.analytics-library:shared:31.1.0=classpath +com.android.tools.analytics-library:tracker:31.1.0=classpath com.android.tools.build.jetifier:jetifier-core:1.0.0-beta10=classpath com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta10=classpath -com.android.tools.build:aapt2-proto:7.3.0-8691043=classpath -com.android.tools.build:aaptcompiler:7.3.0=classpath -com.android.tools.build:apksig:7.3.0=classpath -com.android.tools.build:apkzlib:7.3.0=classpath -com.android.tools.build:builder-model:7.3.0=classpath -com.android.tools.build:builder-test-api:7.3.0=classpath -com.android.tools.build:builder:7.3.0=classpath -com.android.tools.build:bundletool:1.9.0=classpath -com.android.tools.build:gradle-api:7.3.0=classpath -com.android.tools.build:gradle:7.3.0=classpath -com.android.tools.build:manifest-merger:30.3.0=classpath +com.android.tools.build:aapt2-proto:8.1.0-10154469=classpath +com.android.tools.build:aaptcompiler:8.1.0=classpath +com.android.tools.build:apksig:8.1.0=classpath +com.android.tools.build:apkzlib:8.1.0=classpath +com.android.tools.build:builder-model:8.1.0=classpath +com.android.tools.build:builder-test-api:8.1.0=classpath +com.android.tools.build:builder:8.1.0=classpath +com.android.tools.build:bundletool:1.14.0=classpath +com.android.tools.build:gradle-api:8.1.0=classpath +com.android.tools.build:gradle-settings-api:8.1.0=classpath +com.android.tools.build:gradle:8.1.0=classpath +com.android.tools.build:manifest-merger:31.1.0=classpath com.android.tools.build:transform-api:2.0.0-deprecated-use-gradle-api=classpath -com.android.tools.ddms:ddmlib:30.3.0=classpath -com.android.tools.layoutlib:layoutlib-api:30.3.0=classpath -com.android.tools.lint:lint-model:30.3.0=classpath -com.android.tools.lint:lint-typedef-remover:30.3.0=classpath -com.android.tools.utp:android-device-provider-ddmlib-proto:30.3.0=classpath -com.android.tools.utp:android-device-provider-gradle-proto:30.3.0=classpath -com.android.tools.utp:android-test-plugin-host-additional-test-output-proto:30.3.0=classpath -com.android.tools.utp:android-test-plugin-host-coverage-proto:30.3.0=classpath -com.android.tools.utp:android-test-plugin-host-retention-proto:30.3.0=classpath -com.android.tools.utp:android-test-plugin-result-listener-gradle-proto:30.3.0=classpath -com.android.tools:annotations:30.3.0=classpath -com.android.tools:common:30.3.0=classpath -com.android.tools:dvlib:30.3.0=classpath -com.android.tools:repository:30.3.0=classpath -com.android.tools:sdk-common:30.3.0=classpath -com.android.tools:sdklib:30.3.0=classpath -com.android:signflinger:7.3.0=classpath -com.android:zipflinger:7.3.0=classpath -com.github.gundy:semver4j:0.16.4=classpath +com.android.tools.ddms:ddmlib:31.1.0=classpath +com.android.tools.layoutlib:layoutlib-api:31.1.0=classpath +com.android.tools.lint:lint-model:31.1.0=classpath +com.android.tools.lint:lint-typedef-remover:31.1.0=classpath +com.android.tools.utp:android-device-provider-ddmlib-proto:31.1.0=classpath +com.android.tools.utp:android-device-provider-gradle-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-host-additional-test-output-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-host-apk-installer-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-host-coverage-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-host-emulator-control-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-host-logcat-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-host-retention-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-result-listener-gradle-proto:31.1.0=classpath +com.android.tools:annotations:31.1.0=classpath +com.android.tools:common:31.1.0=classpath +com.android.tools:dvlib:31.1.0=classpath +com.android.tools:repository:31.1.0=classpath +com.android.tools:sdk-common:31.1.0=classpath +com.android.tools:sdklib:31.1.0=classpath +com.android:signflinger:8.1.0=classpath +com.android:zipflinger:8.1.0=classpath com.google.android:annotations:4.1.1.4=classpath com.google.api.grpc:proto-google-common-protos:2.0.1=classpath com.google.auto.value:auto-value-annotations:1.6.2=classpath com.google.code.findbugs:jsr305:3.0.2=classpath com.google.code.gson:gson:2.8.9=classpath -com.google.crypto.tink:tink:1.3.0-rc2=classpath +com.google.crypto.tink:tink:1.7.0=classpath com.google.dagger:dagger:2.28.3=classpath -com.google.errorprone:error_prone_annotations:2.4.0=classpath +com.google.errorprone:error_prone_annotations:2.11.0=classpath com.google.flatbuffers:flatbuffers-java:1.12.0=classpath com.google.guava:failureaccess:1.0.1=classpath -com.google.guava:guava:30.1-jre=classpath +com.google.guava:guava:31.1-jre=classpath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=classpath com.google.j2objc:j2objc-annotations:1.3=classpath com.google.jimfs:jimfs:1.1=classpath -com.google.protobuf:protobuf-java-util:3.17.2=classpath -com.google.protobuf:protobuf-java:3.17.2=classpath -com.google.testing.platform:core-proto:0.0.8-alpha07=classpath -com.googlecode.json-simple:json-simple:1.1=classpath +com.google.protobuf:protobuf-java-util:3.19.3=classpath +com.google.protobuf:protobuf-java:3.19.3=classpath +com.google.testing.platform:core-proto:0.0.8-alpha08=classpath com.googlecode.juniversalchardet:juniversalchardet:1.0.3=classpath com.squareup:javapoet:1.10.0=classpath com.squareup:javawriter:2.5.0=classpath @@ -69,26 +71,25 @@ com.sun.xml.fastinfoset:FastInfoset:1.2.16=classpath commons-codec:commons-codec:1.11=classpath commons-io:commons-io:2.4=classpath commons-logging:commons-logging:1.2=classpath -de.undercouch:gradle-download-task:4.1.1=classpath -io.grpc:grpc-api:1.39.0=classpath -io.grpc:grpc-context:1.39.0=classpath -io.grpc:grpc-core:1.39.0=classpath -io.grpc:grpc-netty:1.39.0=classpath -io.grpc:grpc-protobuf-lite:1.39.0=classpath -io.grpc:grpc-protobuf:1.39.0=classpath -io.grpc:grpc-stub:1.39.0=classpath -io.netty:netty-buffer:4.1.52.Final=classpath -io.netty:netty-codec-http2:4.1.52.Final=classpath -io.netty:netty-codec-http:4.1.52.Final=classpath -io.netty:netty-codec-socks:4.1.52.Final=classpath -io.netty:netty-codec:4.1.52.Final=classpath -io.netty:netty-common:4.1.52.Final=classpath -io.netty:netty-handler-proxy:4.1.52.Final=classpath -io.netty:netty-handler:4.1.52.Final=classpath -io.netty:netty-resolver:4.1.52.Final=classpath -io.netty:netty-transport:4.1.52.Final=classpath +io.grpc:grpc-api:1.45.1=classpath +io.grpc:grpc-context:1.45.1=classpath +io.grpc:grpc-core:1.45.1=classpath +io.grpc:grpc-netty:1.45.1=classpath +io.grpc:grpc-protobuf-lite:1.45.1=classpath +io.grpc:grpc-protobuf:1.45.1=classpath +io.grpc:grpc-stub:1.45.1=classpath +io.netty:netty-buffer:4.1.72.Final=classpath +io.netty:netty-codec-http2:4.1.72.Final=classpath +io.netty:netty-codec-http:4.1.72.Final=classpath +io.netty:netty-codec-socks:4.1.72.Final=classpath +io.netty:netty-codec:4.1.72.Final=classpath +io.netty:netty-common:4.1.72.Final=classpath +io.netty:netty-handler-proxy:4.1.72.Final=classpath +io.netty:netty-handler:4.1.72.Final=classpath +io.netty:netty-resolver:4.1.72.Final=classpath +io.netty:netty-tcnative-classes:2.0.46.Final=classpath +io.netty:netty-transport:4.1.72.Final=classpath io.perfmark:perfmark-api:0.23.0=classpath -it.unimi.dsi:fastutil:8.4.0=classpath jakarta.activation:jakarta.activation-api:1.2.1=classpath jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=classpath javax.annotation:javax.annotation-api:1.3.2=classpath @@ -97,56 +98,56 @@ net.java.dev.jna:jna-platform:5.6.0=classpath net.java.dev.jna:jna:5.6.0=classpath net.sf.jopt-simple:jopt-simple:4.9=classpath net.sf.kxml:kxml2:2.3.0=classpath -org.apache.commons:commons-compress:1.20=classpath +org.apache.commons:commons-compress:1.21=classpath org.apache.httpcomponents:httpclient:4.5.13=classpath -org.apache.httpcomponents:httpcore:4.4.13=classpath +org.apache.httpcomponents:httpcore:4.4.15=classpath org.apache.httpcomponents:httpmime:4.5.6=classpath org.bitbucket.b_c:jose4j:0.7.0=classpath org.bouncycastle:bcpkix-jdk15on:1.67=classpath org.bouncycastle:bcprov-jdk15on:1.67=classpath -org.checkerframework:checker-qual:3.5.0=classpath +org.checkerframework:checker-qual:3.12.0=classpath org.codehaus.mojo:animal-sniffer-annotations:1.19=classpath org.glassfish.jaxb:jaxb-runtime:2.3.2=classpath org.glassfish.jaxb:txw2:2.3.2=classpath org.jdom:jdom2:2.0.6=classpath org.jetbrains.intellij.deps:trove4j:1.0.20200330=classpath -org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin:1.7.10=classpath -org.jetbrains.kotlin:kotlin-android-extensions:1.7.10=classpath -org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.7.10=classpath -org.jetbrains.kotlin:kotlin-build-common:1.7.10=classpath -org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.10=classpath -org.jetbrains.kotlin:kotlin-compiler-runner:1.7.10=classpath -org.jetbrains.kotlin:kotlin-daemon-client:1.7.10=classpath -org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.10=classpath -org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.7.10=classpath -org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.7.10=classpath -org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.7.10=classpath -org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10=classpath -org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.7.10=classpath -org.jetbrains.kotlin:kotlin-native-utils:1.7.10=classpath -org.jetbrains.kotlin:kotlin-project-model:1.7.10=classpath -org.jetbrains.kotlin:kotlin-reflect:1.5.31=classpath -org.jetbrains.kotlin:kotlin-scripting-common:1.7.10=classpath -org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.7.10=classpath -org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.7.10=classpath -org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10=classpath -org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31=classpath -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.31=classpath -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31=classpath -org.jetbrains.kotlin:kotlin-stdlib:1.5.31=classpath -org.jetbrains.kotlin:kotlin-tooling-core:1.7.10=classpath -org.jetbrains.kotlin:kotlin-tooling-metadata:1.7.10=classpath -org.jetbrains.kotlin:kotlin-util-io:1.7.10=classpath -org.jetbrains.kotlin:kotlin-util-klib:1.7.10=classpath +org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin:1.8.22=classpath +org.jetbrains.kotlin:kotlin-android-extensions:1.8.22=classpath +org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.8.22=classpath +org.jetbrains.kotlin:kotlin-compiler-embeddable:1.8.22=classpath +org.jetbrains.kotlin:kotlin-compiler-runner:1.8.22=classpath +org.jetbrains.kotlin:kotlin-daemon-client:1.8.22=classpath +org.jetbrains.kotlin:kotlin-daemon-embeddable:1.8.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-annotations:1.8.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.8.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:1.8.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.8.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.8.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugins-bom:1.8.22=classpath +org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.8.22=classpath +org.jetbrains.kotlin:kotlin-native-utils:1.8.22=classpath +org.jetbrains.kotlin:kotlin-project-model:1.8.22=classpath +org.jetbrains.kotlin:kotlin-reflect:1.8.20-RC2=classpath +org.jetbrains.kotlin:kotlin-scripting-common:1.8.22=classpath +org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.8.22=classpath +org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.8.22=classpath +org.jetbrains.kotlin:kotlin-scripting-jvm:1.8.22=classpath +org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20-RC2=classpath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20-RC2=classpath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20-RC2=classpath +org.jetbrains.kotlin:kotlin-stdlib:1.8.20-RC2=classpath +org.jetbrains.kotlin:kotlin-tooling-core:1.8.22=classpath +org.jetbrains.kotlin:kotlin-util-io:1.8.22=classpath +org.jetbrains.kotlin:kotlin-util-klib:1.8.22=classpath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0=classpath org.jetbrains:annotations:13.0=classpath -org.json:json:20180813=classpath org.jvnet.staxex:stax-ex:1.8.1=classpath -org.ow2.asm:asm-analysis:9.1=classpath -org.ow2.asm:asm-commons:9.1=classpath -org.ow2.asm:asm-tree:9.1=classpath -org.ow2.asm:asm-util:9.1=classpath -org.ow2.asm:asm:9.1=classpath +org.ow2.asm:asm-analysis:9.2=classpath +org.ow2.asm:asm-commons:9.2=classpath +org.ow2.asm:asm-tree:9.2=classpath +org.ow2.asm:asm-util:9.2=classpath +org.ow2.asm:asm:9.2=classpath org.slf4j:slf4j-api:1.7.30=classpath org.tensorflow:tensorflow-lite-metadata:0.1.0-rc2=classpath xerces:xercesImpl:2.12.0=classpath diff --git a/dev/integration_tests/external_textures/android/gradle/wrapper/gradle-wrapper.properties b/dev/integration_tests/external_textures/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..5e6b542711 100644 --- a/dev/integration_tests/external_textures/android/gradle/wrapper/gradle-wrapper.properties +++ b/dev/integration_tests/external_textures/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip diff --git a/dev/integration_tests/external_textures/android/settings.gradle b/dev/integration_tests/external_textures/android/settings.gradle index 30db20e260..cbe8cd337e 100644 --- a/dev/integration_tests/external_textures/android/settings.gradle +++ b/dev/integration_tests/external_textures/android/settings.gradle @@ -34,8 +34,8 @@ buildscript { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false - id "org.jetbrains.kotlin.android" version "1.7.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/dev/integration_tests/flutter_gallery/android/buildscript-gradle.lockfile b/dev/integration_tests/flutter_gallery/android/buildscript-gradle.lockfile index 7e31538970..c4ae49fa77 100644 --- a/dev/integration_tests/flutter_gallery/android/buildscript-gradle.lockfile +++ b/dev/integration_tests/flutter_gallery/android/buildscript-gradle.lockfile @@ -1,65 +1,68 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -androidx.databinding:databinding-common:7.3.0=classpath -androidx.databinding:databinding-compiler-common:7.3.0=classpath -com.android.application:com.android.application.gradle.plugin:7.3.0=classpath -com.android.databinding:baseLibrary:7.3.0=classpath -com.android.tools.analytics-library:crash:30.3.0=classpath -com.android.tools.analytics-library:protos:30.3.0=classpath -com.android.tools.analytics-library:shared:30.3.0=classpath -com.android.tools.analytics-library:tracker:30.3.0=classpath +androidx.databinding:databinding-common:8.1.0=classpath +androidx.databinding:databinding-compiler-common:8.1.0=classpath +com.android.application:com.android.application.gradle.plugin:8.1.0=classpath +com.android.databinding:baseLibrary:8.1.0=classpath +com.android.tools.analytics-library:crash:31.1.0=classpath +com.android.tools.analytics-library:protos:31.1.0=classpath +com.android.tools.analytics-library:shared:31.1.0=classpath +com.android.tools.analytics-library:tracker:31.1.0=classpath com.android.tools.build.jetifier:jetifier-core:1.0.0-beta10=classpath com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta10=classpath -com.android.tools.build:aapt2-proto:7.3.0-8691043=classpath -com.android.tools.build:aaptcompiler:7.3.0=classpath -com.android.tools.build:apksig:7.3.0=classpath -com.android.tools.build:apkzlib:7.3.0=classpath -com.android.tools.build:builder-model:7.3.0=classpath -com.android.tools.build:builder-test-api:7.3.0=classpath -com.android.tools.build:builder:7.3.0=classpath -com.android.tools.build:bundletool:1.9.0=classpath -com.android.tools.build:gradle-api:7.3.0=classpath -com.android.tools.build:gradle:7.3.0=classpath -com.android.tools.build:manifest-merger:30.3.0=classpath +com.android.tools.build:aapt2-proto:8.1.0-10154469=classpath +com.android.tools.build:aaptcompiler:8.1.0=classpath +com.android.tools.build:apksig:8.1.0=classpath +com.android.tools.build:apkzlib:8.1.0=classpath +com.android.tools.build:builder-model:8.1.0=classpath +com.android.tools.build:builder-test-api:8.1.0=classpath +com.android.tools.build:builder:8.1.0=classpath +com.android.tools.build:bundletool:1.14.0=classpath +com.android.tools.build:gradle-api:8.1.0=classpath +com.android.tools.build:gradle-settings-api:8.1.0=classpath +com.android.tools.build:gradle:8.1.0=classpath +com.android.tools.build:manifest-merger:31.1.0=classpath com.android.tools.build:transform-api:2.0.0-deprecated-use-gradle-api=classpath -com.android.tools.ddms:ddmlib:30.3.0=classpath -com.android.tools.layoutlib:layoutlib-api:30.3.0=classpath -com.android.tools.lint:lint-model:30.3.0=classpath -com.android.tools.lint:lint-typedef-remover:30.3.0=classpath -com.android.tools.utp:android-device-provider-ddmlib-proto:30.3.0=classpath -com.android.tools.utp:android-device-provider-gradle-proto:30.3.0=classpath -com.android.tools.utp:android-test-plugin-host-additional-test-output-proto:30.3.0=classpath -com.android.tools.utp:android-test-plugin-host-coverage-proto:30.3.0=classpath -com.android.tools.utp:android-test-plugin-host-retention-proto:30.3.0=classpath -com.android.tools.utp:android-test-plugin-result-listener-gradle-proto:30.3.0=classpath -com.android.tools:annotations:30.3.0=classpath -com.android.tools:common:30.3.0=classpath -com.android.tools:dvlib:30.3.0=classpath -com.android.tools:repository:30.3.0=classpath -com.android.tools:sdk-common:30.3.0=classpath -com.android.tools:sdklib:30.3.0=classpath -com.android:signflinger:7.3.0=classpath -com.android:zipflinger:7.3.0=classpath +com.android.tools.ddms:ddmlib:31.1.0=classpath +com.android.tools.layoutlib:layoutlib-api:31.1.0=classpath +com.android.tools.lint:lint-model:31.1.0=classpath +com.android.tools.lint:lint-typedef-remover:31.1.0=classpath +com.android.tools.utp:android-device-provider-ddmlib-proto:31.1.0=classpath +com.android.tools.utp:android-device-provider-gradle-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-host-additional-test-output-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-host-apk-installer-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-host-coverage-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-host-emulator-control-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-host-logcat-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-host-retention-proto:31.1.0=classpath +com.android.tools.utp:android-test-plugin-result-listener-gradle-proto:31.1.0=classpath +com.android.tools:annotations:31.1.0=classpath +com.android.tools:common:31.1.0=classpath +com.android.tools:dvlib:31.1.0=classpath +com.android.tools:repository:31.1.0=classpath +com.android.tools:sdk-common:31.1.0=classpath +com.android.tools:sdklib:31.1.0=classpath +com.android:signflinger:8.1.0=classpath +com.android:zipflinger:8.1.0=classpath com.github.gundy:semver4j:0.16.4=classpath com.google.android:annotations:4.1.1.4=classpath com.google.api.grpc:proto-google-common-protos:2.0.1=classpath com.google.auto.value:auto-value-annotations:1.6.2=classpath com.google.code.findbugs:jsr305:3.0.2=classpath com.google.code.gson:gson:2.8.9=classpath -com.google.crypto.tink:tink:1.3.0-rc2=classpath +com.google.crypto.tink:tink:1.7.0=classpath com.google.dagger:dagger:2.28.3=classpath -com.google.errorprone:error_prone_annotations:2.4.0=classpath +com.google.errorprone:error_prone_annotations:2.11.0=classpath com.google.flatbuffers:flatbuffers-java:1.12.0=classpath com.google.guava:failureaccess:1.0.1=classpath -com.google.guava:guava:30.1-jre=classpath +com.google.guava:guava:31.1-jre=classpath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=classpath com.google.j2objc:j2objc-annotations:1.3=classpath com.google.jimfs:jimfs:1.1=classpath -com.google.protobuf:protobuf-java-util:3.17.2=classpath -com.google.protobuf:protobuf-java:3.17.2=classpath -com.google.testing.platform:core-proto:0.0.8-alpha07=classpath -com.googlecode.json-simple:json-simple:1.1=classpath +com.google.protobuf:protobuf-java-util:3.19.3=classpath +com.google.protobuf:protobuf-java:3.19.3=classpath +com.google.testing.platform:core-proto:0.0.8-alpha08=classpath com.googlecode.juniversalchardet:juniversalchardet:1.0.3=classpath com.squareup:javapoet:1.10.0=classpath com.squareup:javawriter:2.5.0=classpath @@ -70,25 +73,25 @@ commons-codec:commons-codec:1.11=classpath commons-io:commons-io:2.4=classpath commons-logging:commons-logging:1.2=classpath de.undercouch:gradle-download-task:4.1.1=classpath -io.grpc:grpc-api:1.39.0=classpath -io.grpc:grpc-context:1.39.0=classpath -io.grpc:grpc-core:1.39.0=classpath -io.grpc:grpc-netty:1.39.0=classpath -io.grpc:grpc-protobuf-lite:1.39.0=classpath -io.grpc:grpc-protobuf:1.39.0=classpath -io.grpc:grpc-stub:1.39.0=classpath -io.netty:netty-buffer:4.1.52.Final=classpath -io.netty:netty-codec-http2:4.1.52.Final=classpath -io.netty:netty-codec-http:4.1.52.Final=classpath -io.netty:netty-codec-socks:4.1.52.Final=classpath -io.netty:netty-codec:4.1.52.Final=classpath -io.netty:netty-common:4.1.52.Final=classpath -io.netty:netty-handler-proxy:4.1.52.Final=classpath -io.netty:netty-handler:4.1.52.Final=classpath -io.netty:netty-resolver:4.1.52.Final=classpath -io.netty:netty-transport:4.1.52.Final=classpath +io.grpc:grpc-api:1.45.1=classpath +io.grpc:grpc-context:1.45.1=classpath +io.grpc:grpc-core:1.45.1=classpath +io.grpc:grpc-netty:1.45.1=classpath +io.grpc:grpc-protobuf-lite:1.45.1=classpath +io.grpc:grpc-protobuf:1.45.1=classpath +io.grpc:grpc-stub:1.45.1=classpath +io.netty:netty-buffer:4.1.72.Final=classpath +io.netty:netty-codec-http2:4.1.72.Final=classpath +io.netty:netty-codec-http:4.1.72.Final=classpath +io.netty:netty-codec-socks:4.1.72.Final=classpath +io.netty:netty-codec:4.1.72.Final=classpath +io.netty:netty-common:4.1.72.Final=classpath +io.netty:netty-handler-proxy:4.1.72.Final=classpath +io.netty:netty-handler:4.1.72.Final=classpath +io.netty:netty-resolver:4.1.72.Final=classpath +io.netty:netty-tcnative-classes:2.0.46.Final=classpath +io.netty:netty-transport:4.1.72.Final=classpath io.perfmark:perfmark-api:0.23.0=classpath -it.unimi.dsi:fastutil:8.4.0=classpath jakarta.activation:jakarta.activation-api:1.2.1=classpath jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=classpath javax.annotation:javax.annotation-api:1.3.2=classpath @@ -97,14 +100,14 @@ net.java.dev.jna:jna-platform:5.6.0=classpath net.java.dev.jna:jna:5.6.0=classpath net.sf.jopt-simple:jopt-simple:4.9=classpath net.sf.kxml:kxml2:2.3.0=classpath -org.apache.commons:commons-compress:1.20=classpath +org.apache.commons:commons-compress:1.21=classpath org.apache.httpcomponents:httpclient:4.5.13=classpath -org.apache.httpcomponents:httpcore:4.4.13=classpath +org.apache.httpcomponents:httpcore:4.4.15=classpath org.apache.httpcomponents:httpmime:4.5.6=classpath org.bitbucket.b_c:jose4j:0.7.0=classpath org.bouncycastle:bcpkix-jdk15on:1.67=classpath org.bouncycastle:bcprov-jdk15on:1.67=classpath -org.checkerframework:checker-qual:3.5.0=classpath +org.checkerframework:checker-qual:3.12.0=classpath org.codehaus.mojo:animal-sniffer-annotations:1.19=classpath org.glassfish.jaxb:jaxb-runtime:2.3.2=classpath org.glassfish.jaxb:txw2:2.3.2=classpath @@ -125,28 +128,27 @@ org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10=classpath org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.7.10=classpath org.jetbrains.kotlin:kotlin-native-utils:1.7.10=classpath org.jetbrains.kotlin:kotlin-project-model:1.7.10=classpath -org.jetbrains.kotlin:kotlin-reflect:1.5.31=classpath +org.jetbrains.kotlin:kotlin-reflect:1.8.20-RC2=classpath org.jetbrains.kotlin:kotlin-scripting-common:1.7.10=classpath org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.7.10=classpath org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.7.10=classpath org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10=classpath -org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31=classpath -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.31=classpath -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31=classpath -org.jetbrains.kotlin:kotlin-stdlib:1.5.31=classpath +org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20-RC2=classpath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20-RC2=classpath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20-RC2=classpath +org.jetbrains.kotlin:kotlin-stdlib:1.8.20-RC2=classpath org.jetbrains.kotlin:kotlin-tooling-core:1.7.10=classpath org.jetbrains.kotlin:kotlin-tooling-metadata:1.7.10=classpath org.jetbrains.kotlin:kotlin-util-io:1.7.10=classpath org.jetbrains.kotlin:kotlin-util-klib:1.7.10=classpath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0=classpath org.jetbrains:annotations:13.0=classpath -org.json:json:20180813=classpath org.jvnet.staxex:stax-ex:1.8.1=classpath -org.ow2.asm:asm-analysis:9.1=classpath -org.ow2.asm:asm-commons:9.1=classpath -org.ow2.asm:asm-tree:9.1=classpath -org.ow2.asm:asm-util:9.1=classpath -org.ow2.asm:asm:9.1=classpath +org.ow2.asm:asm-analysis:9.2=classpath +org.ow2.asm:asm-commons:9.2=classpath +org.ow2.asm:asm-tree:9.2=classpath +org.ow2.asm:asm-util:9.2=classpath +org.ow2.asm:asm:9.2=classpath org.slf4j:slf4j-api:1.7.30=classpath org.tensorflow:tensorflow-lite-metadata:0.1.0-rc2=classpath xerces:xercesImpl:2.12.0=classpath diff --git a/dev/integration_tests/flutter_gallery/android/gradle/wrapper/gradle-wrapper.properties b/dev/integration_tests/flutter_gallery/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..5e6b542711 100644 --- a/dev/integration_tests/flutter_gallery/android/gradle/wrapper/gradle-wrapper.properties +++ b/dev/integration_tests/flutter_gallery/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip diff --git a/dev/integration_tests/flutter_gallery/android/project-app.lockfile b/dev/integration_tests/flutter_gallery/android/project-app.lockfile index e179bb1207..bbe08c11a9 100644 --- a/dev/integration_tests/flutter_gallery/android/project-app.lockfile +++ b/dev/integration_tests/flutter_gallery/android/project-app.lockfile @@ -67,10 +67,6 @@ org.checkerframework:checker-qual:3.41.0=debugRuntimeClasspath,debugUnitTestRunt org.hamcrest:hamcrest-core:1.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,profileCompileClasspath,profileRuntimeClasspath,profileUnitTestCompileClasspath,profileUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath org.hamcrest:hamcrest-integration:1.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,profileCompileClasspath,profileRuntimeClasspath,profileUnitTestCompileClasspath,profileUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath org.hamcrest:hamcrest-library:1.3=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,profileCompileClasspath,profileRuntimeClasspath,profileUnitTestCompileClasspath,profileUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath -org.jacoco:org.jacoco.agent:0.8.7=androidJacocoAnt -org.jacoco:org.jacoco.ant:0.8.7=androidJacocoAnt -org.jacoco:org.jacoco.core:0.8.7=androidJacocoAnt -org.jacoco:org.jacoco.report:0.8.7=androidJacocoAnt org.jetbrains.kotlin:kotlin-bom:1.8.22=debugRuntimeClasspath,debugUnitTestRuntimeClasspath,profileRuntimeClasspath,profileUnitTestRuntimeClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,profileCompileClasspath,profileRuntimeClasspath,profileUnitTestCompileClasspath,profileUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20=debugAndroidTestCompileClasspath @@ -83,8 +79,4 @@ org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.1=debugAndroidTestCompileClassp org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.1=debugAndroidTestCompileClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,profileCompileClasspath,profileRuntimeClasspath,profileUnitTestCompileClasspath,profileUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1=debugAndroidTestCompileClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,profileCompileClasspath,profileRuntimeClasspath,profileUnitTestCompileClasspath,profileUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath org.jetbrains:annotations:23.0.0=debugAndroidTestCompileClasspath,debugAndroidTestRuntimeClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,profileCompileClasspath,profileRuntimeClasspath,profileUnitTestCompileClasspath,profileUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath -org.ow2.asm:asm-analysis:9.1=androidJacocoAnt -org.ow2.asm:asm-commons:9.1=androidJacocoAnt -org.ow2.asm:asm-tree:9.1=androidJacocoAnt -org.ow2.asm:asm:9.1=androidJacocoAnt empty=androidApis,androidJdkImage,androidTestUtil,coreLibraryDesugaring,debugAndroidTestAnnotationProcessorClasspath,debugAnnotationProcessorClasspath,debugReverseMetadataValues,debugUnitTestAnnotationProcessorClasspath,debugWearBundling,lintChecks,lintPublish,profileAnnotationProcessorClasspath,profileReverseMetadataValues,profileUnitTestAnnotationProcessorClasspath,profileWearBundling,releaseAnnotationProcessorClasspath,releaseReverseMetadataValues,releaseUnitTestAnnotationProcessorClasspath,releaseWearBundling diff --git a/dev/integration_tests/flutter_gallery/android/settings.gradle b/dev/integration_tests/flutter_gallery/android/settings.gradle index 30db20e260..73a4cf75b6 100644 --- a/dev/integration_tests/flutter_gallery/android/settings.gradle +++ b/dev/integration_tests/flutter_gallery/android/settings.gradle @@ -34,7 +34,7 @@ buildscript { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "8.1.0" apply false id "org.jetbrains.kotlin.android" version "1.7.10" apply false } diff --git a/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/build.gradle b/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/build.gradle index 428083d45e..1e69c1f986 100644 --- a/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/build.gradle +++ b/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/build.gradle @@ -5,6 +5,7 @@ apply plugin: 'com.android.application' android { + namespace = "io.flutter.addtoapp" compileSdk 34 compileOptions { diff --git a/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/src/main/AndroidManifest.xml b/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/src/main/AndroidManifest.xml index dc7d78d0af..6a73e6c126 100644 --- a/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/src/main/AndroidManifest.xml +++ b/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/src/main/AndroidManifest.xml @@ -3,8 +3,7 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> + xmlns:tools="http://schemas.android.com/tools"> diff --git a/dev/integration_tests/module_host_with_custom_build_v2_embedding/build.gradle b/dev/integration_tests/module_host_with_custom_build_v2_embedding/build.gradle index 90455ea0ad..592d125fbc 100644 --- a/dev/integration_tests/module_host_with_custom_build_v2_embedding/build.gradle +++ b/dev/integration_tests/module_host_with_custom_build_v2_embedding/build.gradle @@ -8,7 +8,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:8.1.0' } } diff --git a/dev/integration_tests/module_host_with_custom_build_v2_embedding/gradle/wrapper/gradle-wrapper.properties b/dev/integration_tests/module_host_with_custom_build_v2_embedding/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..5e6b542711 100644 --- a/dev/integration_tests/module_host_with_custom_build_v2_embedding/gradle/wrapper/gradle-wrapper.properties +++ b/dev/integration_tests/module_host_with_custom_build_v2_embedding/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip diff --git a/dev/tools/bin/config/lockfile_exclusion.yaml b/dev/tools/bin/config/lockfile_exclusion.yaml index 9b942081ed..3c095a1353 100644 --- a/dev/tools/bin/config/lockfile_exclusion.yaml +++ b/dev/tools/bin/config/lockfile_exclusion.yaml @@ -2,12 +2,18 @@ # Each exclusion must have an associated reason. Please avoid adding to this list unless necessary, # as each exclusion must be updated by hand. -# flutter_gallery uses discontinued plugins with old AGP versions that block the app itself using -# a newer AGP version. -- dev/integration_tests/flutter_gallery/android - # gradle_deprecated_settings intentionally uses a Gradle file structure matching an old output of # `flutter create`. It must be updated manually, by changing the desired versions in the Gradle # files, and then running `rm buildscript-gradle.lockfile && ./gradlew :generateLockfiles` from # its android subdirectory. - dev/integration_tests/gradle_deprecated_settings/android + +# hello_world uses a Kotlin Gradle settings file (settings.gradle.kts). We don't have a template +# Kotlin Gradle settings file (only a groovy one), so we currently can't generate it. +- examples/hello_world/android + +# The following files must also be manually updated at the moment, because they don't use a +# lib/main.dart (but they don't need exclusion, as we already skip that case). +# dev/benchmarks/microbenchmarks/android/build.gradle +# dev/tracing_tests/android/build.gradle +# dev/integration_tests/external_textures/android/build.gradle diff --git a/dev/tracing_tests/android/app/build.gradle b/dev/tracing_tests/android/app/build.gradle index 5364fad3d4..a3bd4a16a4 100644 --- a/dev/tracing_tests/android/app/build.gradle +++ b/dev/tracing_tests/android/app/build.gradle @@ -27,6 +27,7 @@ if (flutterVersionName == null) { } android { + namespace = "com.example.tracing_tests" compileSdk flutter.compileSdkVersion compileOptions { diff --git a/dev/tracing_tests/android/app/src/main/AndroidManifest.xml b/dev/tracing_tests/android/app/src/main/AndroidManifest.xml index dab8bc6b07..7e9e6176c6 100644 --- a/dev/tracing_tests/android/app/src/main/AndroidManifest.xml +++ b/dev/tracing_tests/android/app/src/main/AndroidManifest.xml @@ -2,8 +2,7 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> - + gradleErrors = [ incompatibleJavaAndGradleVersionsHandler, remoteTerminatedHandshakeHandler, couldNotOpenCacheDirectoryHandler, + incompatibleCompileSdk35AndAgpVersionHandler, ]; const String _boxTitle = 'Flutter Fix'; @@ -640,3 +641,26 @@ final GradleHandledError couldNotOpenCacheDirectoryHandler = GradleHandledError( }, eventLabel: 'could-not-open-cache-directory', ); + +@visibleForTesting +final GradleHandledError incompatibleCompileSdk35AndAgpVersionHandler = GradleHandledError( + test: (String line) => line.contains('RES_TABLE_TYPE_TYPE entry offsets overlap actual entry data'), + handler: ({ + required String line, + required FlutterProject project, + required bool usesAndroidX, + }) async { + globals.printBox( + '${globals.logger.terminal.warningMark} Using compileSdk 35 requires Android Gradle Plugin (AGP) 8.1.0 or higher.' + ' \n Please upgrade to a newer AGP version. The version of AGP that your project uses is likely' + " defined in:\n${project.android.settingsGradleFile.path},\nin the 'plugins' closure. \n Alternatively, if your " + 'project was created with an older version of the templates, it is likely \nin the buildscript.dependencies ' + 'closure of the top-level build.gradle:\n${project.android.hostAppGradleFile.path}.\n\n Finally, if you have a' + ' strong reason to avoid upgrading AGP, you can temporarily lower the compileSdk version in the following file:\n${project.android.appGradleFile.path}', + title: _boxTitle, + ); + + return GradleBuildStatus.exit; + }, + eventLabel: 'incompatible-compile-sdk-and-agp', +); diff --git a/packages/flutter_tools/lib/src/android/gradle_utils.dart b/packages/flutter_tools/lib/src/android/gradle_utils.dart index d361cb2fd0..ea6f245a19 100644 --- a/packages/flutter_tools/lib/src/android/gradle_utils.dart +++ b/packages/flutter_tools/lib/src/android/gradle_utils.dart @@ -38,10 +38,10 @@ const String templateKotlinGradlePluginVersion = '1.8.22'; // so new versions are picked up after a Flutter upgrade. // // Please see the README before changing any of these values. -const String compileSdkVersion = '34'; +const String compileSdkVersion = '35'; const String minSdkVersion = '21'; -const String targetSdkVersion = '34'; -const String ndkVersion = '23.1.7779620'; +const String targetSdkVersion = '35'; +const String ndkVersion = '26.1.10909125'; // Update these when new major versions of Java are supported by new Gradle diff --git a/packages/flutter_tools/lib/src/project.dart b/packages/flutter_tools/lib/src/project.dart index 09cebef724..88dc60225a 100644 --- a/packages/flutter_tools/lib/src/project.dart +++ b/packages/flutter_tools/lib/src/project.dart @@ -568,22 +568,33 @@ class AndroidProject extends FlutterProjectPlatform { /// The file must exist and it must be written in either Groovy (build.gradle) /// or Kotlin (build.gradle.kts). File get hostAppGradleFile { - final File buildGroovy = hostAppGradleRoot.childFile('build.gradle'); - final File buildKotlin = hostAppGradleRoot.childFile('build.gradle.kts'); + return getGroovyOrKotlin(hostAppGradleRoot, 'build.gradle'); + } - if (buildGroovy.existsSync() && buildKotlin.existsSync()) { + /// Gets the project root level Gradle settings file. + /// + /// The file must exist and it must be written in either Groovy (build.gradle) + /// or Kotlin (build.gradle.kts). + File get settingsGradleFile { + return getGroovyOrKotlin(hostAppGradleRoot, 'settings.gradle'); + } + + File getGroovyOrKotlin(Directory directory, String baseFilename) { + final File groovyFile = directory.childFile(baseFilename); + final File kotlinFile = directory.childFile('$baseFilename.kts'); + + if (groovyFile.existsSync()) { // We mimic Gradle's behavior of preferring Groovy over Kotlin when both files exist. - return buildGroovy; + return groovyFile; } - - if (buildKotlin.existsSync()) { - return buildKotlin; + if (kotlinFile.existsSync()) { + return kotlinFile; } // TODO(bartekpacia): An exception should be thrown when neither - // build.gradle nor build.gradle.kts exist, instead of falling back to the + // the Groovy or Kotlin file exists, instead of falling back to the // Groovy file. See #141180. - return buildGroovy; + return groovyFile; } /// Gets the module-level build.gradle file. @@ -593,22 +604,7 @@ class AndroidProject extends FlutterProjectPlatform { /// or Kotlin (build.gradle.kts). File get appGradleFile { final Directory appDir = hostAppGradleRoot.childDirectory('app'); - final File buildGroovy = appDir.childFile('build.gradle'); - final File buildKotlin = appDir.childFile('build.gradle.kts'); - - if (buildGroovy.existsSync() && buildKotlin.existsSync()) { - // We mimic Gradle's behavior of preferring Groovy over Kotlin when both files exist. - return buildGroovy; - } - - if (buildKotlin.existsSync()) { - return buildKotlin; - } - - // TODO(bartekpacia): An exception should be thrown when neither - // build.gradle nor build.gradle.kts exist, instead of falling back to the - // Groovy file. See #141180. - return buildGroovy; + return getGroovyOrKotlin(appDir, 'build.gradle'); } File get appManifestFile { diff --git a/packages/flutter_tools/templates/module/android/deferred_component/build.gradle.tmpl b/packages/flutter_tools/templates/module/android/deferred_component/build.gradle.tmpl index a1f25c81f7..3bc24b0d71 100644 --- a/packages/flutter_tools/templates/module/android/deferred_component/build.gradle.tmpl +++ b/packages/flutter_tools/templates/module/android/deferred_component/build.gradle.tmpl @@ -19,6 +19,7 @@ if (flutterVersionName == null) { apply plugin: "com.android.dynamic-feature" android { + namespace = "{{androidIdentifier}}.{{componentName}}" compileSdk = flutter.compileSdkVersion compileOptions { diff --git a/packages/flutter_tools/templates/module/android/deferred_component/src/main/AndroidManifest.xml.tmpl b/packages/flutter_tools/templates/module/android/deferred_component/src/main/AndroidManifest.xml.tmpl index 71fe20f019..60e53e11c5 100644 --- a/packages/flutter_tools/templates/module/android/deferred_component/src/main/AndroidManifest.xml.tmpl +++ b/packages/flutter_tools/templates/module/android/deferred_component/src/main/AndroidManifest.xml.tmpl @@ -1,6 +1,5 @@ + xmlns:dist="http://schemas.android.com/apk/distribution"> fileSystem, ProcessManager: () => processManager, }); + + testUsingContext('compileSdk 35 and AGP < 8.1', () async { + const String errorExample = r''' +Execution failed for task ':app:bundleReleaseResources'. +> A failure occurred while executing com.android.build.gradle.internal.res.Aapt2ProcessResourcesRunnable + > Android resource linking failed + aapt2 E 08-19 15:06:26 76078 5921862 LoadedArsc.cpp:94] RES_TABLE_TYPE_TYPE entry offsets overlap actual entry data. + aapt2 E 08-19 15:06:26 76078 5921862 ApkAssets.cpp:152] Failed to load resources table in APK '/Users/mackall/Library/Android/sdk/platforms/android-35/android.jar'. + error: failed to load include path /Users/mackall/Library/Android/sdk/platforms/android-35/android.jar. + '''; + + await incompatibleCompileSdk35AndAgpVersionHandler.handler( + line: errorExample, + project: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory), + usesAndroidX: true, + ); + + expect( + testLogger.statusText, + contains( + '\n' + '┌─ Flutter Fix ────────────────────────────────────────────────────────────────────────────────────┐\n' + '│ [!] Using compileSdk 35 requires Android Gradle Plugin (AGP) 8.1.0 or higher. │\n' + '│ Please upgrade to a newer AGP version. The version of AGP that your project uses is likely │\n' + '│ defined in: │\n' + '│ /android/settings.gradle, │\n' + "│ in the 'plugins' closure. │\n" + '│ Alternatively, if your project was created with an older version of the templates, it is likely │\n' + '│ │\n' + '│ in the buildscript.dependencies closure of the top-level build.gradle: │\n' + '│ /android/build.gradle. │\n' + '│ │\n' + '│ Finally, if you have a strong reason to avoid upgrading AGP, you can temporarily lower the │\n' + '│ compileSdk version in the following file: │\n' + '│ /android/app/build.gradle │\n' + '└──────────────────────────────────────────────────────────────────────────────────────────────────┘\n' + '' + ) + ); + }, overrides: { + GradleUtils: () => FakeGradleUtils(), + Platform: () => fakePlatform('android'), + FileSystem: () => fileSystem, + ProcessManager: () => processManager, + }); } bool formatTestErrorMessage(String errorMessage, GradleHandledError error) { diff --git a/packages/flutter_tools/test/integration.shard/android_gradle_deprecated_plugin_apply_test.dart b/packages/flutter_tools/test/integration.shard/android_gradle_deprecated_plugin_apply_test.dart index 5a768798ba..992308d8c0 100644 --- a/packages/flutter_tools/test/integration.shard/android_gradle_deprecated_plugin_apply_test.dart +++ b/packages/flutter_tools/test/integration.shard/android_gradle_deprecated_plugin_apply_test.dart @@ -63,14 +63,14 @@ apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gra ); buildGradle.writeAsStringSync(r''' buildscript { - ext.kotlin_version = '1.7.10' + ext.kotlin_version = '1.8.22' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:8.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/packages/flutter_tools/test/integration.shard/test_data/deferred_components_config.dart b/packages/flutter_tools/test/integration.shard/test_data/deferred_components_config.dart index 05dfabfc3f..c08fc31438 100644 --- a/packages/flutter_tools/test/integration.shard/test_data/deferred_components_config.dart +++ b/packages/flutter_tools/test/integration.shard/test_data/deferred_components_config.dart @@ -77,7 +77,9 @@ class DeferredComponentModule { apply plugin: "com.android.dynamic-feature" android { - compileSdk 34 + namespace = "com.example.''' + name + r''' +" + compileSdk 35 sourceSets { applicationVariants.all { variant -> @@ -88,7 +90,7 @@ class DeferredComponentModule { defaultConfig { minSdkVersion 21 - targetSdkVersion 33 + targetSdkVersion 35 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } @@ -105,8 +107,7 @@ class DeferredComponentModule { writeFile(fileSystem.path.join(dir.path, 'android', name, 'src', 'main', 'AndroidManifest.xml'), ''' + xmlns:dist="http://schemas.android.com/apk/distribution"> r''' buildscript { - ext.kotlin_version = '1.7.10' + ext.kotlin_version = '1.8.22' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:8.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -175,9 +175,19 @@ class BasicDeferredComponentsConfig extends DeferredComponentsConfig { apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { + namespace = "com.example.splitaot" compileSdk flutter.compileSdkVersion ndkVersion flutter.ndkVersion + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_1_8 + } + sourceSets { main.java.srcDirs += 'src/main/kotlin' } @@ -482,8 +492,7 @@ class BasicDeferredComponentsConfig extends DeferredComponentsConfig { @override String get appManifest => r''' - +