[Reland] Force automatic ndk download when building for Android (#160260)
Relands https://github.com/flutter/flutter/pull/159756. The original caused some stderr because 1. the configurable `ndkVersion` value that AGP provides used to be null by default. 2. Now it is not, instead it has a default value 3. `integration_test` doesn't actually use the NDK, but default for `integration_test` was higher that `flutter.ndkVersion` 4. We have code that checks if a plugin uses a higher ndk version and tells you to consider upgrading https://github.com/flutter/flutter/blob/master/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy#L921 This reverts the revert, and then aligns `integration_test`'s NDK version (which again, it doesn't actually use, so I'm not too concerned about the downgrade) with `flutter.ndkVersion`. It also starts using the `flutter.min/compile/ndkVersion` values in `integration_test`, which was unrelated to the original pr. Can remove if you think it should land separately. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Gray Mackall <mackall@google.com>
This commit is contained in:
parent
29a6c648ca
commit
2948917a47
6
.ci.yaml
6
.ci.yaml
@ -5503,7 +5503,7 @@ targets:
|
||||
add_recipes_cq: "true"
|
||||
dependencies: >-
|
||||
[
|
||||
{"dependency": "android_sdk", "version": "version:33v6"},
|
||||
{"dependency": "android_sdk", "version": "version:35v1"},
|
||||
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
|
||||
{"dependency": "open_jdk", "version": "version:17"},
|
||||
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"},
|
||||
@ -5521,7 +5521,7 @@ targets:
|
||||
add_recipes_cq: "true"
|
||||
dependencies: >-
|
||||
[
|
||||
{"dependency": "android_sdk", "version": "version:33v6"},
|
||||
{"dependency": "android_sdk", "version": "version:35v1"},
|
||||
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
|
||||
{"dependency": "open_jdk", "version": "version:17"},
|
||||
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"},
|
||||
@ -5539,7 +5539,7 @@ targets:
|
||||
add_recipes_cq: "true"
|
||||
dependencies: >-
|
||||
[
|
||||
{"dependency": "android_sdk", "version": "version:33v6"},
|
||||
{"dependency": "android_sdk", "version": "version:35v1"},
|
||||
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
|
||||
{"dependency": "open_jdk", "version": "version:17"},
|
||||
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"},
|
||||
|
@ -35,7 +35,15 @@ if (keystorePropertiesFile.exists()) {
|
||||
android {
|
||||
namespace "com.example.a11y_assessments"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
ndkVersion flutter.ndkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -29,6 +29,15 @@ android {
|
||||
namespace "com.yourcompany.complexLayout"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_11
|
||||
targetCompatibility JavaVersion.VERSION_11
|
||||
|
@ -29,6 +29,15 @@ android {
|
||||
namespace "com.example.macrobenchmarks"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -29,6 +29,15 @@ android {
|
||||
namespace "com.yourcompany.microbenchmarks"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -16,6 +16,15 @@ android {
|
||||
namespace "dev.flutter.multipleflutters"
|
||||
compileSdk 34
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = "26.3.11579264" // This version must exactly match the version of the NDK that the recipe pulls from CIPD.
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -29,6 +29,15 @@ android {
|
||||
namespace "dev.benchmarks.platform_views_layout"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -29,6 +29,15 @@ android {
|
||||
namespace "dev.benchmarks.platform_views_layout_hybrid_composition"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -29,6 +29,15 @@ android {
|
||||
namespace "io.flutter.examples.stocks"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -15,7 +15,7 @@ Future<void> main() async {
|
||||
try {
|
||||
await runProjectTest((FlutterProject flutterProject) async {
|
||||
section('APK contains plugin classes');
|
||||
await flutterProject.setMinSdkVersion(20);
|
||||
await flutterProject.setMinSdkVersion(21);
|
||||
await flutterProject.addPlugin('google_maps_flutter:^2.2.1');
|
||||
|
||||
await inDirectory(flutterProject.rootPath, () async {
|
||||
|
@ -20,6 +20,15 @@ android {
|
||||
namespace = "com.yourcompany.platforminteraction"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -29,7 +29,15 @@ if (flutterVersionName == null) {
|
||||
android {
|
||||
namespace "io.flutter.integration.android_verified_input"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
ndkVersion flutter.ndkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -29,6 +29,15 @@ android {
|
||||
namespace = 'io.flutter.integration.platformviews'
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -29,7 +29,15 @@ if (flutterVersionName == null) {
|
||||
android {
|
||||
namespace "com.example.channels"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
ndkVersion flutter.ndkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -36,6 +36,15 @@ android {
|
||||
namespace "io.flutter.integration.deferred_components_test"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main.java.srcDirs += 'src/main/kotlin'
|
||||
}
|
||||
|
@ -26,6 +26,15 @@ android {
|
||||
namespace "io.flutter.integration.deferred_components_test.component1"
|
||||
compileSdk 35
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = "26.3.11579264" // This version must exactly match the version of the NDK that the recipe pulls from CIPD.
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
applicationVariants.all { variant ->
|
||||
main.assets.srcDirs += "${project.layout.buildDirectory.get()}/intermediates/flutter/${variant.name}/deferred_assets"
|
||||
|
@ -19,6 +19,15 @@ android {
|
||||
namespace = "io.flutter.externalui"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -19,6 +19,15 @@ android {
|
||||
namespace "com.yourcompany.flavors"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -45,6 +45,15 @@ android {
|
||||
namespace "io.flutter.demo.gallery"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -22,6 +22,15 @@ android {
|
||||
namespace = "com.yourcompany.flavors"
|
||||
compileSdk 34
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -29,6 +29,15 @@ android {
|
||||
namespace = "io.flutter.integration.platformviews"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -8,6 +8,15 @@ android {
|
||||
namespace = "io.flutter.addtoapp"
|
||||
compileSdk 34
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = "26.3.11579264" // This version must exactly match the version of the NDK that the recipe pulls from CIPD.
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -12,7 +12,15 @@ plugins {
|
||||
android {
|
||||
namespace = "com.example.native_driver_test"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
ndkVersion = flutter.ndkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
|
@ -30,6 +30,15 @@ android {
|
||||
namespace = "com.example.non_nullable"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -19,6 +19,15 @@ android {
|
||||
namespace = "com.yourcompany.platforminteraction"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -8,6 +8,15 @@ android {
|
||||
namespace = "io.flutter.add2app"
|
||||
compileSdk 34
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = "26.3.11579264" // This version must exactly match the version of the NDK that the recipe pulls from CIPD.
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -8,6 +8,15 @@ android {
|
||||
namespace = "io.flutter.add2app"
|
||||
compileSdk 34
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = "26.3.11579264" // This version must exactly match the version of the NDK that the recipe pulls from CIPD.
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -7,6 +7,15 @@ android {
|
||||
namespace = "com.example.myapplication"
|
||||
compileSdk = 34
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
val systemNdkPath: String? = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = "26.3.11579264" // This version must exactly match the version of the NDK that the recipe pulls from CIPD.
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "com.example.myapplication"
|
||||
minSdk = 24
|
||||
|
@ -30,6 +30,15 @@ android {
|
||||
namespace = "com.example.release_smoke_test"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -29,7 +29,15 @@ if (flutterVersionName == null) {
|
||||
android {
|
||||
namespace "com.example.spell_check"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
ndkVersion flutter.ndkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -12,6 +12,15 @@ android {
|
||||
namespace "com.yourcompany.integration_ui"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -30,6 +30,15 @@ android {
|
||||
namespace = "dev.flutter.manual_tests"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -30,6 +30,15 @@ android {
|
||||
namespace = "com.example.tracing_tests"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -11,6 +11,15 @@ android {
|
||||
namespace "com.example.view"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -11,6 +11,15 @@ android {
|
||||
namespace = "io.flutter.examples.hello_world"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
val systemNdkPath: String? = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
|
@ -29,6 +29,15 @@ android {
|
||||
namespace "com.example.image_list"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -11,6 +11,15 @@ android {
|
||||
namespace "io.flutter.examples.Layers"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -29,6 +29,15 @@ android {
|
||||
namespace "com.example.platformchannel"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -29,6 +29,15 @@ android {
|
||||
namespace "io.flutter.examples.platform_view"
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
@ -0,0 +1,3 @@
|
||||
# Empty file to trick the Android Gradle Plugin to download the NDK. This is because AGP requires
|
||||
# the NDK in order to strip debug symbols from native libraries, does not download it in that case
|
||||
# (instead, AGP only downloads it when AGP thinks it needs the NDK to build a native library).
|
@ -62,7 +62,7 @@ class FlutterExtension {
|
||||
* 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 = "26.1.10909125"
|
||||
public final String ndkVersion = "26.3.11579264"
|
||||
|
||||
/**
|
||||
* Specifies the relative directory to the Flutter project directory.
|
||||
@ -279,6 +279,7 @@ class FlutterPlugin implements Plugin<Project> {
|
||||
extension.flutterVersionName = flutterVersionName ?: "1.0"
|
||||
|
||||
this.addFlutterTasks(project)
|
||||
forceNdkDownload(project, flutterRootPath)
|
||||
|
||||
// By default, assembling APKs generates fat APKs if multiple platforms are passed.
|
||||
// Configuring split per ABI allows to generate separate APKs for each abi.
|
||||
@ -859,6 +860,36 @@ class FlutterPlugin implements Plugin<Project> {
|
||||
return version2
|
||||
}
|
||||
|
||||
private void forceNdkDownload(Project gradleProject, String flutterSdkRootPath) {
|
||||
// If the project is already configuring a native build, we don't need to do anything.
|
||||
Boolean forcingNotRequired = gradleProject.android.externalNativeBuild.cmake.path != null
|
||||
if (forcingNotRequired) {
|
||||
return
|
||||
}
|
||||
|
||||
// Otherwise, point to an empty CMakeLists.txt, and ignore associated warnings.
|
||||
gradleProject.android {
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
// Respect the existing configuration if it exists - the NDK will already be
|
||||
// downloaded in this case.
|
||||
path = flutterSdkRootPath + "/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt"
|
||||
}
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
// CMake will print warnings when you try to build an empty project.
|
||||
// These arguments silence the warnings - our project is intentionally
|
||||
// empty.
|
||||
arguments("-Wno-dev", "--no-warn-unused-cli")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Prints error message and fix for any plugin compileSdkVersion or ndkVersion that are higher than the project. */
|
||||
private void detectLowCompileSdkVersionOrNdkVersion() {
|
||||
project.afterEvaluate {
|
||||
|
@ -33,7 +33,8 @@ rootProject.allprojects {
|
||||
|
||||
android {
|
||||
namespace = "dev.flutter.integration_test"
|
||||
compileSdk = 34
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
ndkVersion = flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
@ -41,7 +42,7 @@ android {
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
minSdk = 21
|
||||
minSdk = flutter.minSdkVersion
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
consumerProguardFiles("lib-proguard-rules.txt")
|
||||
}
|
||||
|
@ -26,12 +26,18 @@ if (flutterVersionName == null) {
|
||||
}
|
||||
|
||||
android {
|
||||
// Conditional for compatibility with AGP <4.2.
|
||||
if (project.android.hasProperty("namespace")) {
|
||||
namespace 'com.example.integration_test_example'
|
||||
}
|
||||
namespace 'com.example.integration_test_example'
|
||||
compileSdk flutter.compileSdkVersion
|
||||
|
||||
// Flutter's CI installs the NDK at a non-standard path.
|
||||
// This non-standard structure is initially created by
|
||||
// https://github.com/flutter/engine/blob/3.27.0/tools/android_sdk/create_cipd_packages.sh.
|
||||
String systemNdkPath = System.getenv("ANDROID_NDK_PATH")
|
||||
if (systemNdkPath != null) {
|
||||
ndkVersion = flutter.ndkVersion
|
||||
ndkPath = systemNdkPath
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
|
Loading…
x
Reference in New Issue
Block a user