Update template/test compileSdk, targetSdk, ndk versions (#152487)

Updates `compileSdk`, `targetSdk`, and `ndk` versions (former 2 to latest, latter to the version of the ndk we are hosting on CIPD).

Summary of changes:
- Updates mentioned template values
- `compileSdk` 35 requires AGP 8.0+, so updated to 8.1 in many places.
- This also necessitated Gradle upgrades in most places
- This also necessitated moving the `package` xml attribute to the AGP `namespace` field in a couple places (test + template).
- Some tests use the output of `flutter create` but then use intentionally lower AGP versions. [I downgraded the `compileSdk` in these tests.](fee34fd61a)
- [Stopped lockfile generation](82324a2570) script from hitting the `hello_world` example because it uses `.kts` gradle files.
- One test needed [some Gradle options we had already added to templates](6aa187b4b6).
This commit is contained in:
Gray Mackall 2024-08-20 14:33:12 -07:00 committed by GitHub
parent 5a87890277
commit ef9cd32f5a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
51 changed files with 403 additions and 280 deletions

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -25,14 +25,22 @@ List<VersionTuple> versionTuples = <VersionTuple>[
// 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<void> 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,
compileSdkOverride: '34',
tempDir: tempDir,
localFileSystem: fileSystem
);
});
}

View File

@ -449,7 +449,7 @@ class ModuleTest {
Future<void> main() async {
await task(combine(<TaskFunction>[
// 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,
]));
}

View File

@ -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 {
@ -87,6 +88,7 @@ class VersionTuple {
/// fails, returns a successful result otherwise. Cleans up in either case.
Future<TaskResult> buildFlutterApkWithSpecifiedDependencyVersions({
required List<VersionTuple> versionTuples,
String? compileSdkOverride,
required Directory tempDir,
required LocalFileSystem localFileSystem,}) async {
for (final VersionTuple versions in versionTuples) {
@ -105,6 +107,14 @@ Future<TaskResult> buildFlutterApkWithSpecifiedDependencyVersions({
final String appPath = '${innerTempDir.absolute.path}/dependency_checker_app';
if (compileSdkOverride != null) {
final File appGradleBuild = localFileSystem.file(localFileSystem.path.join(
appPath, 'android', 'app', 'build.gradle'));
final String appBuildContent = appGradleBuild.readAsStringSync()
.replaceFirst(flutterCompileSdkString, compileSdkOverride);
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'));

View File

@ -5,6 +5,7 @@
apply plugin: 'com.android.application'
android {
namespace = "io.flutter.add2app"
compileSdk 34
compileOptions {

View File

@ -3,8 +3,7 @@ Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="io.flutter.add2app">
xmlns:tools="http://schemas.android.com/tools">
<application android:allowBackup="false"
tools:ignore="GoogleAppIndexingWarning,MissingApplicationIcon">

View File

@ -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'
}
}

View File

@ -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

View File

@ -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) {

View File

@ -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"

View File

@ -5,6 +5,7 @@
apply plugin: 'com.android.application'
android {
namespace = "io.flutter.add2app"
compileSdk 34
compileOptions {

View File

@ -3,8 +3,7 @@ Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="io.flutter.add2app">
xmlns:tools="http://schemas.android.com/tools">
<application android:allowBackup="false"
tools:ignore="GoogleAppIndexingWarning,MissingApplicationIcon">

View File

@ -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'
}
}

View File

@ -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"
}

View File

@ -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
}

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
}

View File

@ -5,6 +5,7 @@
apply plugin: 'com.android.application'
android {
namespace = "io.flutter.addtoapp"
compileSdk 34
compileOptions {

View File

@ -3,8 +3,7 @@ Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="io.flutter.addtoapp">
xmlns:tools="http://schemas.android.com/tools">
<application android:allowBackup="false"
tools:ignore="GoogleAppIndexingWarning,MissingApplicationIcon">

View File

@ -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'
}
}

View File

@ -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

View File

@ -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

View File

@ -27,6 +27,7 @@ if (flutterVersionName == null) {
}
android {
namespace = "com.example.tracing_tests"
compileSdk flutter.compileSdkVersion
compileOptions {

View File

@ -2,8 +2,7 @@
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.tracing_tests">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:label="tracing_tests"
android:name="${applicationName}"

View File

@ -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

View File

@ -27,8 +27,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"

View File

@ -1,64 +1,66 @@
# 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.4.2=classpath
androidx.databinding:databinding-compiler-common:7.4.2=classpath
com.android.application:com.android.application.gradle.plugin:7.4.2=classpath
com.android.databinding:baseLibrary:7.4.2=classpath
com.android.tools.analytics-library:crash:30.4.2=classpath
com.android.tools.analytics-library:protos:30.4.2=classpath
com.android.tools.analytics-library:shared:30.4.2=classpath
com.android.tools.analytics-library:tracker:30.4.2=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.4.2-8841542=classpath
com.android.tools.build:aaptcompiler:7.4.2=classpath
com.android.tools.build:apksig:7.4.2=classpath
com.android.tools.build:apkzlib:7.4.2=classpath
com.android.tools.build:builder-model:7.4.2=classpath
com.android.tools.build:builder-test-api:7.4.2=classpath
com.android.tools.build:builder:7.4.2=classpath
com.android.tools.build:bundletool:1.11.4=classpath
com.android.tools.build:gradle-api:7.4.2=classpath
com.android.tools.build:gradle-settings-api:7.4.2=classpath
com.android.tools.build:gradle:7.4.2=classpath
com.android.tools.build:manifest-merger:30.4.2=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.4.2=classpath
com.android.tools.layoutlib:layoutlib-api:30.4.2=classpath
com.android.tools.lint:lint-model:30.4.2=classpath
com.android.tools.lint:lint-typedef-remover:30.4.2=classpath
com.android.tools.utp:android-device-provider-ddmlib-proto:30.4.2=classpath
com.android.tools.utp:android-device-provider-gradle-proto:30.4.2=classpath
com.android.tools.utp:android-test-plugin-host-additional-test-output-proto:30.4.2=classpath
com.android.tools.utp:android-test-plugin-host-coverage-proto:30.4.2=classpath
com.android.tools.utp:android-test-plugin-host-retention-proto:30.4.2=classpath
com.android.tools.utp:android-test-plugin-result-listener-gradle-proto:30.4.2=classpath
com.android.tools:annotations:30.4.2=classpath
com.android.tools:common:30.4.2=classpath
com.android.tools:dvlib:30.4.2=classpath
com.android.tools:repository:30.4.2=classpath
com.android.tools:sdk-common:30.4.2=classpath
com.android.tools:sdklib:30.4.2=classpath
com.android:signflinger:7.4.2=classpath
com.android:zipflinger:7.4.2=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.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
@ -69,24 +71,24 @@ 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
jakarta.activation:jakarta.activation-api:1.2.1=classpath
jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=classpath
@ -96,50 +98,50 @@ 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.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=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-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=classpath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20=classpath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20=classpath
org.jetbrains.kotlin:kotlin-stdlib:1.8.20=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: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.2=classpath
org.ow2.asm:asm-commons:9.2=classpath

View File

@ -35,10 +35,6 @@ androidx.window.extensions.core:core:1.0.0=debugRuntimeClasspath,debugUnitTestRu
androidx.window:window-java:1.2.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,profileCompileClasspath,profileRuntimeClasspath,profileUnitTestCompileClasspath,profileUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
androidx.window:window:1.2.0=debugAndroidTestCompileClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,profileCompileClasspath,profileRuntimeClasspath,profileUnitTestCompileClasspath,profileUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
com.google.guava:listenablefuture:1.0=debugRuntimeClasspath,debugUnitTestRuntimeClasspath,profileRuntimeClasspath,profileUnitTestRuntimeClasspath,releaseRuntimeClasspath,releaseUnitTestRuntimeClasspath
org.jacoco:org.jacoco.agent:0.8.8=androidJacocoAnt
org.jacoco:org.jacoco.ant:0.8.8=androidJacocoAnt
org.jacoco:org.jacoco.core:0.8.8=androidJacocoAnt
org.jacoco:org.jacoco.report:0.8.8=androidJacocoAnt
org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22=debugAndroidTestCompileClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,profileCompileClasspath,profileRuntimeClasspath,profileUnitTestCompileClasspath,profileUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20=debugAndroidTestCompileClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,profileCompileClasspath,profileRuntimeClasspath,profileUnitTestCompileClasspath,profileUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20=debugAndroidTestCompileClasspath,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,profileCompileClasspath,profileRuntimeClasspath,profileUnitTestCompileClasspath,profileUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
@ -48,8 +44,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,debugCompileClasspath,debugRuntimeClasspath,debugUnitTestCompileClasspath,debugUnitTestRuntimeClasspath,profileCompileClasspath,profileRuntimeClasspath,profileUnitTestCompileClasspath,profileUnitTestRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath,releaseUnitTestCompileClasspath,releaseUnitTestRuntimeClasspath
org.ow2.asm:asm-analysis:9.2=androidJacocoAnt
org.ow2.asm:asm-commons:9.2=androidJacocoAnt
org.ow2.asm:asm-tree:9.2=androidJacocoAnt
org.ow2.asm:asm:9.2=androidJacocoAnt
empty=androidApis,androidJdkImage,androidTestUtil,coreLibraryDesugaring,debugAndroidTestAnnotationProcessorClasspath,debugAndroidTestRuntimeClasspath,debugAnnotationProcessorClasspath,debugReverseMetadataValues,debugUnitTestAnnotationProcessorClasspath,debugWearBundling,lintChecks,lintPublish,profileAnnotationProcessorClasspath,profileReverseMetadataValues,profileUnitTestAnnotationProcessorClasspath,profileWearBundling,releaseAnnotationProcessorClasspath,releaseReverseMetadataValues,releaseUnitTestAnnotationProcessorClasspath,releaseWearBundling

View File

@ -34,8 +34,8 @@ buildscript {
plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "7.4.2" 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")

View File

@ -42,7 +42,7 @@ import org.gradle.internal.os.OperatingSystem
class FlutterExtension {
/** Sets the compileSdkVersion used by default in Flutter app projects. */
public final int compileSdkVersion = 34
public final int compileSdkVersion = 35
/** Sets the minSdkVersion used by default in Flutter app projects. */
public final int minSdkVersion = 21
@ -53,14 +53,14 @@ class FlutterExtension {
*
* See https://developer.android.com/guide/topics/manifest/uses-sdk-element.
*/
public final int targetSdkVersion = 34
public final int targetSdkVersion = 35
/**
* Sets the ndkVersion used by default in Flutter app projects.
* Chosen as default version of the AGP version below as found in
* https://developer.android.com/studio/projects/install-ndk#default-ndk-per-agp.
*/
public final String ndkVersion = "23.1.7779620"
public final String ndkVersion = "26.1.10909125"
/**
* Specifies the relative directory to the Flutter project directory.

View File

@ -80,6 +80,7 @@ final List<GradleHandledError> gradleErrors = <GradleHandledError>[
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',
);

View File

@ -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

View File

@ -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');
if (buildGroovy.existsSync() && buildKotlin.existsSync()) {
// We mimic Gradle's behavior of preferring Groovy over Kotlin when both files exist.
return buildGroovy;
return getGroovyOrKotlin(hostAppGradleRoot, 'build.gradle');
}
if (buildKotlin.existsSync()) {
return buildKotlin;
/// 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 groovyFile;
}
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 {

View File

@ -19,6 +19,7 @@ if (flutterVersionName == null) {
apply plugin: "com.android.dynamic-feature"
android {
namespace = "{{androidIdentifier}}.{{componentName}}"
compileSdk = flutter.compileSdkVersion
compileOptions {

View File

@ -1,6 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:dist="http://schemas.android.com/apk/distribution"
package="{{androidIdentifier}}.{{componentName}}">
xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module
dist:instant="false"

View File

@ -14,6 +14,8 @@ import '../src/context.dart';
// This test requires Java 11 due to the intentionally low version of Gradle.
// It also overrides the template compile sdk version to 34, because using 35
// requires AGP 8.0+.
void main() {
late Directory tempDir;
@ -31,6 +33,7 @@ void main() {
final VersionTuple versionTuple = VersionTuple(agpVersion: '7.0.0', gradleVersion: '7.5', kotlinVersion: '1.7.10');
final ProcessResult result = await buildFlutterApkWithSpecifiedDependencyVersions(
versions: versionTuple,
compileSdkOverride: '34',
tempDir: tempDir
);
expect(result, const ProcessResultMatcher());
@ -44,6 +47,7 @@ void main() {
final VersionTuple versionTuple = VersionTuple(agpVersion: '7.0.0', gradleVersion: '7.0.2', kotlinVersion: '1.7.10');
final ProcessResult result = await buildFlutterApkWithSpecifiedDependencyVersions(
versions: versionTuple,
compileSdkOverride: '34',
tempDir: tempDir
);
expect(result, const ProcessResultMatcher());
@ -56,6 +60,7 @@ void main() {
final VersionTuple versionTuple = VersionTuple(agpVersion: '7.4.0', gradleVersion: '7.5', kotlinVersion: '1.7.0');
final ProcessResult result = await buildFlutterApkWithSpecifiedDependencyVersions(
versions: versionTuple,
compileSdkOverride: '34',
tempDir: tempDir
);

View File

@ -51,6 +51,7 @@ void main() {
incompatibleJavaAndGradleVersionsHandler,
remoteTerminatedHandshakeHandler,
couldNotOpenCacheDirectoryHandler,
incompatibleCompileSdk35AndAgpVersionHandler,
])
);
});
@ -1291,6 +1292,51 @@ A problem occurred evaluating script.
FileSystem: () => 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: <Type, Generator>{
GradleUtils: () => FakeGradleUtils(),
Platform: () => fakePlatform('android'),
FileSystem: () => fileSystem,
ProcessManager: () => processManager,
});
}
bool formatTestErrorMessage(String errorMessage, GradleHandledError error) {

View File

@ -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"
}
}

View File

@ -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'), '''
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:dist="http://schemas.android.com/apk/distribution"
package="com.example.$name">
xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module
dist:instant="false"

View File

@ -107,14 +107,14 @@ class BasicDeferredComponentsConfig extends DeferredComponentsConfig {
@override
String get androidBuild => 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'''
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.splitaot">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
In most cases you can leave this as-is, but you if you want to provide

View File

@ -17,13 +17,13 @@ class PluginDeferredComponentsConfig extends BasicDeferredComponentsConfig {
@override
String get androidBuild => 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"
}
configurations.classpath {
@ -72,8 +72,7 @@ apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gra
@override
String get appManifest => r'''
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yourcompany.flavors">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:name="${applicationName}"

View File

@ -117,6 +117,7 @@ distributionUrl=https\://services.gradle.org/distributions/gradle-GRADLE_REPLACE
''';
const String gradleReplacementString = 'GRADLE_REPLACE_ME';
const String flutterCompileSdkString = 'flutter.compileSdkVersion';
class VersionTuple {
@ -141,6 +142,7 @@ class VersionTuple {
/// ProcessResult.
Future<ProcessResult> buildFlutterApkWithSpecifiedDependencyVersions({
required VersionTuple versions,
String? compileSdkOverride,
required Directory tempDir,}) async {
// Create a new flutter project.
final String flutterBin = fileSystem.path.join(getFlutterRoot(), 'bin', 'flutter');
@ -154,6 +156,14 @@ Future<ProcessResult> buildFlutterApkWithSpecifiedDependencyVersions({
final Directory app = Directory(fileSystem.path.join(tempDir.path, 'dependency_checker_app'));
if (compileSdkOverride != null) {
final File appGradleBuild = File(fileSystem.path.join(
app.path, 'android', 'app', 'build.gradle'));
final String appBuildContent = appGradleBuild.readAsStringSync()
.replaceFirst(flutterCompileSdkString, compileSdkOverride);
appGradleBuild.writeAsStringSync(appBuildContent);
}
// Modify gradle version to passed in version.
final File gradleWrapperProperties = File(fileSystem.path.join(
app.path, 'android', 'gradle', 'wrapper', 'gradle-wrapper.properties'));

View File

@ -12,7 +12,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:7.3.1'
classpath 'com.android.tools.build:gradle:8.1.0'
}
}
@ -30,10 +30,7 @@ rootProject.allprojects {
apply plugin: 'com.android.library'
android {
// Conditional for compatibility with AGP <4.2.
if (project.android.hasProperty("namespace")) {
namespace 'dev.flutter.integration_test'
}
compileSdk 34