mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
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:
parent
5a87890277
commit
ef9cd32f5a
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
);
|
||||
});
|
||||
}
|
||||
|
@ -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,
|
||||
]));
|
||||
}
|
||||
|
@ -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'));
|
||||
|
@ -5,6 +5,7 @@
|
||||
apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
namespace = "io.flutter.add2app"
|
||||
compileSdk 34
|
||||
|
||||
compileOptions {
|
||||
|
@ -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">
|
||||
|
@ -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'
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
@ -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"
|
||||
|
@ -5,6 +5,7 @@
|
||||
apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
namespace = "io.flutter.add2app"
|
||||
compileSdk 34
|
||||
|
||||
compileOptions {
|
||||
|
@ -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">
|
||||
|
@ -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'
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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"
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
namespace = "io.flutter.addtoapp"
|
||||
compileSdk 34
|
||||
|
||||
compileOptions {
|
||||
|
@ -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">
|
||||
|
@ -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'
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -27,6 +27,7 @@ if (flutterVersionName == null) {
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.example.tracing_tests"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
compileOptions {
|
||||
|
@ -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}"
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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")
|
||||
|
@ -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.
|
||||
|
@ -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',
|
||||
);
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
|
@ -19,6 +19,7 @@ if (flutterVersionName == null) {
|
||||
apply plugin: "com.android.dynamic-feature"
|
||||
|
||||
android {
|
||||
namespace = "{{androidIdentifier}}.{{componentName}}"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
|
||||
compileOptions {
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
);
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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}"
|
||||
|
@ -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'));
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user