diff --git a/.ci.yaml b/.ci.yaml index 833722cf839..88161c7ae8e 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -51,7 +51,7 @@ platform_properties: ] dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "android_virtual_device", "version": "android_36_google_apis_x64.textpb"}, {"dependency": "avd_cipd_version", "version": "build_id:8719362231152674241"}, {"dependency": "open_jdk", "version": "version:21"}, @@ -74,7 +74,7 @@ platform_properties: ] dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "android_virtual_device", "version": "android_36_google_apis_x64.textpb"}, {"dependency": "avd_cipd_version", "version": "build_id:8702262057250908257"}, {"dependency": "open_jdk", "version": "version:21"}, @@ -98,7 +98,7 @@ platform_properties: ] dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "android_virtual_device", "version": "android_35_google_apis_x64.textpb"}, {"dependency": "avd_cipd_version", "version": "build_id:8733065022087935185"}, {"dependency": "open_jdk", "version": "version:21"}, @@ -115,7 +115,7 @@ platform_properties: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "curl", "version": "version:7.64.0"} ] @@ -127,7 +127,7 @@ platform_properties: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "curl", "version": "version:7.64.0"} ] @@ -138,7 +138,7 @@ platform_properties: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "curl", "version": "version:7.64.0"} ] @@ -149,7 +149,7 @@ platform_properties: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "curl", "version": "version:7.64.0"} ] @@ -252,7 +252,7 @@ platform_properties: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -264,7 +264,7 @@ platform_properties: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"} ] os: Mac-15.1|Mac-15.5|Mac-15.6|Mac-15.7 @@ -342,7 +342,7 @@ platform_properties: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -375,7 +375,7 @@ targets: test_timeout_secs: "3600" # 1 hour dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "curl", "version": "version:7.64.0"} ] @@ -411,7 +411,7 @@ targets: # Requires Android SDK since we may re-generate Gradle lockfiles dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "gh_cli", "version": "version:2.8.0-2-g32256d38"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -432,7 +432,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -456,7 +456,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -475,7 +475,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -494,7 +494,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -513,7 +513,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -532,7 +532,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -692,7 +692,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -713,7 +713,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, @@ -801,7 +801,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, @@ -837,7 +837,7 @@ targets: {"dependency": "cmake", "version": "build_id:8787856497187628321"}, {"dependency": "ninja", "version": "version:1.9.0"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "android_sdk", "version": "version:36v4unmodified"} + {"dependency": "android_sdk", "version": "version:36v4"} ] shard: framework_tests subshard: misc @@ -908,7 +908,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -931,7 +931,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -954,7 +954,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -977,7 +977,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -1001,7 +1001,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -1025,7 +1025,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -1049,7 +1049,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -1073,7 +1073,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -1098,7 +1098,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -1123,7 +1123,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -1147,7 +1147,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -1175,7 +1175,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -1284,7 +1284,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -1348,7 +1348,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"} ] tags: > @@ -1377,7 +1377,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, @@ -1405,7 +1405,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, @@ -1433,7 +1433,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, @@ -1461,7 +1461,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, @@ -1489,7 +1489,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, @@ -1517,7 +1517,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, @@ -1545,7 +1545,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, @@ -1604,7 +1604,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, @@ -1631,7 +1631,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:11"} ] @@ -1655,7 +1655,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:17"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, @@ -1682,7 +1682,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, {"dependency": "cmake", "version": "build_id:8787856497187628321"}, @@ -1707,7 +1707,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"} ] shard: tool_tests @@ -1729,7 +1729,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"} ] shard: tool_tests @@ -3715,7 +3715,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, @@ -3734,7 +3734,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, @@ -3753,7 +3753,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, @@ -3772,7 +3772,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, @@ -3792,7 +3792,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, @@ -3810,7 +3810,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, @@ -3828,7 +3828,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, @@ -3846,7 +3846,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, @@ -4036,7 +4036,7 @@ targets: {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "android_sdk", "version": "version:36v4unmodified"} + {"dependency": "android_sdk", "version": "version:36v4"} ] shard: framework_tests subshard: misc @@ -4067,7 +4067,7 @@ targets: {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "android_sdk", "version": "version:36v4unmodified"} + {"dependency": "android_sdk", "version": "version:36v4"} ] shard: framework_tests subshard: misc @@ -4123,7 +4123,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"} ] tags: > @@ -4162,7 +4162,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"} ] tags: > @@ -4182,7 +4182,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"} ] tags: > @@ -4202,7 +4202,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"} ] tags: > @@ -4223,7 +4223,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"} ] tags: > @@ -4298,7 +4298,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"} ] @@ -4360,7 +4360,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"} ] tags: > @@ -4380,7 +4380,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -4484,7 +4484,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, @@ -4511,7 +4511,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, @@ -4538,7 +4538,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, @@ -4565,7 +4565,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, @@ -4592,7 +4592,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}, @@ -4618,7 +4618,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"} ] shard: tool_tests_commands @@ -4633,7 +4633,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"} ] shard: tool_tests_commands @@ -4648,7 +4648,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"} ] shard: tool_tests @@ -5665,7 +5665,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -5683,7 +5683,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -5701,7 +5701,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -5719,7 +5719,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -5737,7 +5737,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -5755,7 +5755,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -5773,7 +5773,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -5791,7 +5791,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -5809,7 +5809,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -5901,7 +5901,7 @@ targets: {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, {"dependency": "vs_build", "version": "version:vs2019"}, {"dependency": "open_jdk", "version": "version:21"}, - {"dependency": "android_sdk", "version": "version:36v4unmodified"} + {"dependency": "android_sdk", "version": "version:36v4"} ] shard: framework_tests subshard: misc @@ -5989,7 +5989,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -6035,7 +6035,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -6056,7 +6056,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -6077,7 +6077,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -6100,7 +6100,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -6148,7 +6148,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -6169,7 +6169,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -6190,7 +6190,7 @@ targets: properties: dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"} ] @@ -6332,7 +6332,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -6358,7 +6358,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -6384,7 +6384,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -6410,7 +6410,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -6436,7 +6436,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -6462,7 +6462,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -6488,7 +6488,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -6514,7 +6514,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -6540,7 +6540,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}, @@ -6567,7 +6567,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "vs_build", "version": "version:vs2019"} ] @@ -6614,7 +6614,7 @@ targets: add_recipes_cq: "true" dependencies: >- [ - {"dependency": "android_sdk", "version": "version:36v4unmodified"}, + {"dependency": "android_sdk", "version": "version:36v4"}, {"dependency": "open_jdk", "version": "version:21"} ] shard: tool_tests diff --git a/DEPS b/DEPS index a8b6533d8e4..e8940508c61 100644 --- a/DEPS +++ b/DEPS @@ -615,7 +615,7 @@ deps = { 'packages': [ { 'package': 'flutter/android/sdk/all/${{platform}}', - 'version': 'version:36v4unmodified' + 'version': 'version:36v3' } ], 'condition': 'download_android_deps', diff --git a/dev/a11y_assessments/android/app/build.gradle b/dev/a11y_assessments/android/app/build.gradle index b3deaa733e3..43f539fe081 100644 --- a/dev/a11y_assessments/android/app/build.gradle +++ b/dev/a11y_assessments/android/app/build.gradle @@ -36,6 +36,14 @@ android { namespace = "com.example.a11y_assessments" 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_17 diff --git a/dev/benchmarks/complex_layout/android/app/build.gradle b/dev/benchmarks/complex_layout/android/app/build.gradle index ca435312615..c01d3bad3b8 100644 --- a/dev/benchmarks/complex_layout/android/app/build.gradle +++ b/dev/benchmarks/complex_layout/android/app/build.gradle @@ -29,6 +29,14 @@ 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_17 diff --git a/dev/benchmarks/macrobenchmarks/android/app/build.gradle b/dev/benchmarks/macrobenchmarks/android/app/build.gradle index a9bdfc5515b..8b7601c9504 100644 --- a/dev/benchmarks/macrobenchmarks/android/app/build.gradle +++ b/dev/benchmarks/macrobenchmarks/android/app/build.gradle @@ -29,6 +29,14 @@ 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_17 diff --git a/dev/benchmarks/microbenchmarks/android/app/build.gradle b/dev/benchmarks/microbenchmarks/android/app/build.gradle index d1cf0fd4623..9528b334612 100644 --- a/dev/benchmarks/microbenchmarks/android/app/build.gradle +++ b/dev/benchmarks/microbenchmarks/android/app/build.gradle @@ -29,6 +29,14 @@ 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_17 diff --git a/dev/benchmarks/multiple_flutters/android/app/build.gradle b/dev/benchmarks/multiple_flutters/android/app/build.gradle index 74da8986b62..0cc61e7411b 100644 --- a/dev/benchmarks/multiple_flutters/android/app/build.gradle +++ b/dev/benchmarks/multiple_flutters/android/app/build.gradle @@ -16,6 +16,14 @@ android { namespace = "dev.flutter.multipleflutters" compileSdk = 36 + // 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 = "28.2.13676358" // This version must exactly match the version of the NDK that the recipe pulls from CIPD. + ndkPath = systemNdkPath + } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 diff --git a/dev/benchmarks/platform_views_layout/android/app/build.gradle b/dev/benchmarks/platform_views_layout/android/app/build.gradle index 5c412461136..68d89d9cd11 100644 --- a/dev/benchmarks/platform_views_layout/android/app/build.gradle +++ b/dev/benchmarks/platform_views_layout/android/app/build.gradle @@ -29,6 +29,14 @@ 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_17 diff --git a/dev/benchmarks/platform_views_layout_hybrid_composition/android/app/build.gradle b/dev/benchmarks/platform_views_layout_hybrid_composition/android/app/build.gradle index 9f850b0aac7..036681f9b26 100644 --- a/dev/benchmarks/platform_views_layout_hybrid_composition/android/app/build.gradle +++ b/dev/benchmarks/platform_views_layout_hybrid_composition/android/app/build.gradle @@ -29,6 +29,14 @@ 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_17 diff --git a/dev/benchmarks/test_apps/stocks/android/app/build.gradle b/dev/benchmarks/test_apps/stocks/android/app/build.gradle index cd5380ae1bd..8d20874cfc5 100644 --- a/dev/benchmarks/test_apps/stocks/android/app/build.gradle +++ b/dev/benchmarks/test_apps/stocks/android/app/build.gradle @@ -29,6 +29,14 @@ 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_17 diff --git a/dev/bots/run_command.dart b/dev/bots/run_command.dart index 2429befa3d5..6ec13566772 100644 --- a/dev/bots/run_command.dart +++ b/dev/bots/run_command.dart @@ -100,18 +100,11 @@ Future startCommand( final time = Stopwatch()..start(); print('workingDirectory: $workingDirectory, executable: $executable, arguments: $arguments'); - - // Override ANDROID_NDK_PATH with a valid discovered path or empty string to clear a potentially bad value. - // See also dev/devicelab/lib/framework/utils.dart. - final finalEnvironment = { - ...?environment, - 'ANDROID_NDK_PATH': ?_discoverBestNdkPath(), - }; final io.Process process = await io.Process.start( executable, arguments, workingDirectory: workingDirectory, - environment: finalEnvironment, + environment: environment, ); return Command._( process, @@ -150,76 +143,6 @@ Future startCommand( ); } -String? _bestNdkPath; -String? _discoverBestNdkPath() { - if (_bestNdkPath != null) { - return _bestNdkPath; - } - // If we found a valid NDK, return it. - // Otherwise return empty string to clear any bad inherited value. - final Map env = io.Platform.environment; - String? androidHome = env['ANDROID_HOME'] ?? env['ANDROID_SDK_ROOT']; - if (androidHome == null) { - // Try to find it in common default locations. - if (io.Platform.isMacOS) { - final String? home = env['HOME']; - if (home != null) { - androidHome = path.join(home, 'Library', 'Android', 'sdk'); - } - } else if (io.Platform.isLinux) { - final String? home = env['HOME']; - if (home != null) { - androidHome = path.join(home, 'Android', 'Sdk'); - } - } else if (io.Platform.isWindows) { - final String? homeDrive = env['HOMEDRIVE']; - final String? homePath = env['HOMEPATH']; - if (homeDrive != null && homePath != null) { - androidHome = path.join(homeDrive + homePath, 'AppData', 'Local', 'Android', 'sdk'); - } - } - } - - if (androidHome == null) { - return _bestNdkPath = null; - } - final ndkDir = io.Directory(path.join(androidHome, 'ndk')); - if (!ndkDir.existsSync()) { - return _bestNdkPath = null; - } - final versions = []; - for (final io.FileSystemEntity entity in ndkDir.listSync()) { - if (entity is io.Directory) { - final String name = path.basename(entity.path); - // flutter_tools ignores non-SemVer directories. NDK versions should start with a number. - if (int.tryParse(name.split('.').first) != null) { - versions.add(name); - } - } - } - if (versions.isEmpty) { - return _bestNdkPath = null; - } - // Sort numerically/lexicographically to find the "highest" version. - // We assume versions are like "21.4.7075529" or "23.1.7779620". - // A simple sort works for major versions if they have the same number of digits, - // but to be safe we parse the major version. - versions.sort((String a, String b) { - // Try to parse major version. - final int? aMajor = int.tryParse(a.split('.').first); - final int? bMajor = int.tryParse(b.split('.').first); - if (aMajor != null && bMajor != null) { - if (aMajor != bMajor) { - return aMajor.compareTo(bMajor); - } - } - // Fallback to string comparison. - return a.compareTo(b); - }); - - return _bestNdkPath = path.join(ndkDir.path, versions.last); -} - /// Runs the `executable` and waits until the process exits. /// /// If the process exits with a non-zero exit code and `expectNonZeroExit` is diff --git a/dev/devicelab/bin/tasks/build_android_host_app_with_module_aar.dart b/dev/devicelab/bin/tasks/build_android_host_app_with_module_aar.dart index 8b96ed6810e..775da825294 100644 --- a/dev/devicelab/bin/tasks/build_android_host_app_with_module_aar.dart +++ b/dev/devicelab/bin/tasks/build_android_host_app_with_module_aar.dart @@ -47,7 +47,6 @@ class ModuleTest { Future call() async { section('Running: $buildTarget-$gradleVersion'); - section('Find Java'); final String? javaHome = await findJavaHome(); diff --git a/dev/devicelab/lib/framework/utils.dart b/dev/devicelab/lib/framework/utils.dart index def1f12bb86..cb5c39715f6 100644 --- a/dev/devicelab/lib/framework/utils.dart +++ b/dev/devicelab/lib/framework/utils.dart @@ -9,7 +9,6 @@ import 'dart:math' as math; import 'package:path/path.dart' as path; import 'package:process/process.dart'; -import 'package:pub_semver/pub_semver.dart'; import 'package:stack_trace/stack_trace.dart'; import 'devices.dart'; @@ -284,17 +283,7 @@ Future startProcess( }) async { final command = '$executable ${arguments?.join(" ") ?? ""}'; final String finalWorkingDirectory = workingDirectory ?? cwd; - final newEnvironment = { - ...?environment, - 'ANDROID_NDK_PATH': ?_discoverBestNdkPath(), - }; - // Override ANDROID_NDK_PATH with a valid discovered path or empty string to clear a potentially bad value. - // See also bots/run_command.dart. - final String? bestNdkPath = _discoverBestNdkPath(); - if (bestNdkPath != null) { - newEnvironment['ANDROID_NDK_PATH'] = bestNdkPath; - } - + final newEnvironment = Map.from(environment ?? {}); newEnvironment['BOT'] = isBot ? 'true' : 'false'; newEnvironment['LANG'] = 'en_US.UTF-8'; print('Executing "$command" in "$finalWorkingDirectory" with environment $newEnvironment'); @@ -807,66 +796,13 @@ Uri? parseServiceUri(String line, {Pattern? prefix}) { return matches.isEmpty ? null : Uri.parse(matches[0].group(0)!); } +/// Checks that the file exists, otherwise throws a [FileSystemException]. void checkFileExists(String file) { if (!exists(File(file))) { - fail('File not found: $file'); + throw FileSystemException('Expected file to exist.', file); } } -String? _bestNdkPath; -String? _discoverBestNdkPath() { - if (_bestNdkPath != null) { - return _bestNdkPath; - } - // If we found a valid NDK, return it. - // Otherwise return empty string to clear any bad inherited value. - final Map env = Platform.environment; - String? androidHome = env['ANDROID_HOME'] ?? env['ANDROID_SDK_ROOT']; - if (androidHome == null) { - // Try to find it in common default locations. - if (Platform.isMacOS) { - final String? home = env['HOME']; - if (home != null) { - androidHome = path.join(home, 'Library', 'Android', 'sdk'); - } - } else if (Platform.isLinux) { - final String? home = env['HOME']; - if (home != null) { - androidHome = path.join(home, 'Android', 'Sdk'); - } - } else if (Platform.isWindows) { - final String? homeDrive = env['HOMEDRIVE']; - final String? homePath = env['HOMEPATH']; - if (homeDrive != null && homePath != null) { - androidHome = path.join(homeDrive + homePath, 'AppData', 'Local', 'Android', 'sdk'); - } - } - } - - if (androidHome == null) { - return _bestNdkPath = null; - } - final ndkDir = Directory(path.join(androidHome, 'ndk')); - if (!ndkDir.existsSync()) { - return _bestNdkPath = null; - } - final versions = []; - for (final FileSystemEntity entity in ndkDir.listSync()) { - if (entity is Directory) { - try { - versions.add(Version.parse(path.basename(entity.path))); - } on FormatException { - // Ignore non-version directories. - } - } - } - if (versions.isEmpty) { - return _bestNdkPath = null; - } - versions.sort(); - return _bestNdkPath = path.join(ndkDir.path, versions.last.toString()); -} - /// Checks that the file does not exists, otherwise throws a [FileSystemException]. void checkFileNotExists(String file) { if (exists(File(file))) { diff --git a/dev/devicelab/test/tasks/build_test_task_test.dart b/dev/devicelab/test/tasks/build_test_task_test.dart index 5b9767f9da2..e6d0f6bc65d 100644 --- a/dev/devicelab/test/tasks/build_test_task_test.dart +++ b/dev/devicelab/test/tasks/build_test_task_test.dart @@ -62,10 +62,8 @@ void main() { final capturedPrint = capturedPrintLines.toString(); expect( capturedPrint, - allOf( - contains('with environment {'), - contains('FLUTTER_DEVICELAB_DEVICEID: FAKE_SUCCESS'), - contains('BOT: true'), + contains( + 'with environment {FLUTTER_DEVICELAB_DEVICEID: FAKE_SUCCESS, BOT: true, LANG: en_US.UTF-8}', ), ); expect(capturedPrint, contains('Process terminated with exit code 0.')); diff --git a/dev/integration_tests/android_engine_test/android/app/build.gradle b/dev/integration_tests/android_engine_test/android/app/build.gradle index a39ea11bc83..5816503114d 100644 --- a/dev/integration_tests/android_engine_test/android/app/build.gradle +++ b/dev/integration_tests/android_engine_test/android/app/build.gradle @@ -13,6 +13,14 @@ android { namespace = "com.example.android_engine_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_17 diff --git a/dev/integration_tests/android_semantics_testing/android/app/build.gradle b/dev/integration_tests/android_semantics_testing/android/app/build.gradle index 333bd28889e..491fac8de70 100644 --- a/dev/integration_tests/android_semantics_testing/android/app/build.gradle +++ b/dev/integration_tests/android_semantics_testing/android/app/build.gradle @@ -20,6 +20,14 @@ 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_17 diff --git a/dev/integration_tests/android_verified_input/android/app/build.gradle b/dev/integration_tests/android_verified_input/android/app/build.gradle index 73075d64ecf..e6f0187e1e7 100644 --- a/dev/integration_tests/android_verified_input/android/app/build.gradle +++ b/dev/integration_tests/android_verified_input/android/app/build.gradle @@ -30,6 +30,15 @@ android { namespace "io.flutter.integration.android_verified_input" 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 diff --git a/dev/integration_tests/android_views/android/app/build.gradle b/dev/integration_tests/android_views/android/app/build.gradle index d379fcb5620..3524a4baa11 100644 --- a/dev/integration_tests/android_views/android/app/build.gradle +++ b/dev/integration_tests/android_views/android/app/build.gradle @@ -29,6 +29,14 @@ 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_17 diff --git a/dev/integration_tests/channels/android/app/build.gradle b/dev/integration_tests/channels/android/app/build.gradle index 3d32be0f083..cb21db12dbb 100644 --- a/dev/integration_tests/channels/android/app/build.gradle +++ b/dev/integration_tests/channels/android/app/build.gradle @@ -30,6 +30,15 @@ android { namespace = "com.example.channels" 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_17 targetCompatibility JavaVersion.VERSION_17 diff --git a/dev/integration_tests/deferred_components_test/android/app/build.gradle b/dev/integration_tests/deferred_components_test/android/app/build.gradle index 7eea528ab17..9154ce901c2 100644 --- a/dev/integration_tests/deferred_components_test/android/app/build.gradle +++ b/dev/integration_tests/deferred_components_test/android/app/build.gradle @@ -36,9 +36,19 @@ 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' } + lintOptions { disable 'InvalidPackage' } diff --git a/dev/integration_tests/deferred_components_test/android/component1/build.gradle b/dev/integration_tests/deferred_components_test/android/component1/build.gradle index ba3625c33d9..2b0ec98e79d 100644 --- a/dev/integration_tests/deferred_components_test/android/component1/build.gradle +++ b/dev/integration_tests/deferred_components_test/android/component1/build.gradle @@ -26,6 +26,14 @@ android { namespace = "io.flutter.integration.deferred_components_test.component1" compileSdk = 36 + // 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 -> diff --git a/dev/integration_tests/external_textures/android/app/build.gradle b/dev/integration_tests/external_textures/android/app/build.gradle index eec5faba976..43f669edeed 100644 --- a/dev/integration_tests/external_textures/android/app/build.gradle +++ b/dev/integration_tests/external_textures/android/app/build.gradle @@ -19,6 +19,14 @@ 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_17 diff --git a/dev/integration_tests/flavors/android/app/build.gradle b/dev/integration_tests/flavors/android/app/build.gradle index 37ef7948ee4..5f747a3671b 100644 --- a/dev/integration_tests/flavors/android/app/build.gradle +++ b/dev/integration_tests/flavors/android/app/build.gradle @@ -19,6 +19,14 @@ 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_17 diff --git a/dev/integration_tests/flutter_gallery/android/app/build.gradle b/dev/integration_tests/flutter_gallery/android/app/build.gradle index 5b586b2b12e..125067a4c99 100644 --- a/dev/integration_tests/flutter_gallery/android/app/build.gradle +++ b/dev/integration_tests/flutter_gallery/android/app/build.gradle @@ -48,6 +48,14 @@ 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_17 diff --git a/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/build.gradle b/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/build.gradle index 93fc96059a4..8bd0cb226a5 100644 --- a/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/build.gradle +++ b/dev/integration_tests/module_host_with_custom_build_v2_embedding/app/build.gradle @@ -8,6 +8,14 @@ android { namespace = "io.flutter.addtoapp" compileSdk = 36 + // 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_17 diff --git a/dev/integration_tests/platform_interaction/android/app/build.gradle b/dev/integration_tests/platform_interaction/android/app/build.gradle index 2e01c694558..3736d021dc7 100644 --- a/dev/integration_tests/platform_interaction/android/app/build.gradle +++ b/dev/integration_tests/platform_interaction/android/app/build.gradle @@ -19,6 +19,14 @@ 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_17 diff --git a/dev/integration_tests/pure_android_host_apps/android_custom_host_app/SampleApp/build.gradle b/dev/integration_tests/pure_android_host_apps/android_custom_host_app/SampleApp/build.gradle index 5e505a18ba1..35274837a3a 100644 --- a/dev/integration_tests/pure_android_host_apps/android_custom_host_app/SampleApp/build.gradle +++ b/dev/integration_tests/pure_android_host_apps/android_custom_host_app/SampleApp/build.gradle @@ -8,6 +8,14 @@ android { namespace = "io.flutter.add2app" compileSdk = 36 + // 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_17 diff --git a/dev/integration_tests/pure_android_host_apps/android_host_app_v2_embedding/app/build.gradle b/dev/integration_tests/pure_android_host_apps/android_host_app_v2_embedding/app/build.gradle index 1d35e888f43..f607202f8f4 100644 --- a/dev/integration_tests/pure_android_host_apps/android_host_app_v2_embedding/app/build.gradle +++ b/dev/integration_tests/pure_android_host_apps/android_host_app_v2_embedding/app/build.gradle @@ -8,6 +8,15 @@ android { namespace = "io.flutter.add2app" compileSdk = 36 + // 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_17 targetCompatibility JavaVersion.VERSION_17 diff --git a/dev/integration_tests/pure_android_host_apps/host_app_kotlin_gradle_dsl/app/build.gradle.kts b/dev/integration_tests/pure_android_host_apps/host_app_kotlin_gradle_dsl/app/build.gradle.kts index 97e78442e69..12f2af23205 100644 --- a/dev/integration_tests/pure_android_host_apps/host_app_kotlin_gradle_dsl/app/build.gradle.kts +++ b/dev/integration_tests/pure_android_host_apps/host_app_kotlin_gradle_dsl/app/build.gradle.kts @@ -7,6 +7,14 @@ android { namespace = "com.example.myapplication" compileSdk = 36 + // 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" diff --git a/dev/integration_tests/release_smoke_test/android/app/build.gradle b/dev/integration_tests/release_smoke_test/android/app/build.gradle index 85a056cd998..996b399624d 100644 --- a/dev/integration_tests/release_smoke_test/android/app/build.gradle +++ b/dev/integration_tests/release_smoke_test/android/app/build.gradle @@ -30,6 +30,14 @@ 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_17 diff --git a/dev/integration_tests/spell_check/android/app/build.gradle b/dev/integration_tests/spell_check/android/app/build.gradle index b646114b777..9cfd7036664 100644 --- a/dev/integration_tests/spell_check/android/app/build.gradle +++ b/dev/integration_tests/spell_check/android/app/build.gradle @@ -30,6 +30,14 @@ android { namespace = "com.example.spell_check" 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_17 diff --git a/dev/integration_tests/ui/android/app/build.gradle b/dev/integration_tests/ui/android/app/build.gradle index e8c37784683..9fea9e220bf 100644 --- a/dev/integration_tests/ui/android/app/build.gradle +++ b/dev/integration_tests/ui/android/app/build.gradle @@ -12,6 +12,14 @@ 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_17 diff --git a/dev/manual_tests/android/app/build.gradle b/dev/manual_tests/android/app/build.gradle index 7b8cb0970f8..775ce686a4d 100644 --- a/dev/manual_tests/android/app/build.gradle +++ b/dev/manual_tests/android/app/build.gradle @@ -30,6 +30,14 @@ 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_17 diff --git a/dev/tracing_tests/android/app/build.gradle b/dev/tracing_tests/android/app/build.gradle index d82f6a2d973..cbaae76869f 100644 --- a/dev/tracing_tests/android/app/build.gradle +++ b/dev/tracing_tests/android/app/build.gradle @@ -30,6 +30,14 @@ 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 diff --git a/engine/src/build/config/android/config.gni b/engine/src/build/config/android/config.gni index df0169a8ef3..faf04fe2c9c 100644 --- a/engine/src/build/config/android/config.gni +++ b/engine/src/build/config/android/config.gni @@ -53,8 +53,7 @@ if (is_android) { android_sdk = "${android_sdk_root}/platforms/android-${android_sdk_version}" # Path to the Android NDK and SDK. - android_ndk_version = "28.2.13676358" - android_ndk_root = "//flutter/third_party/android_tools/sdk/ndk/$android_ndk_version" + android_ndk_root = "//flutter/third_party/android_tools/ndk" android_ndk_include_dir = "$android_ndk_root/usr/include" android_sdk = "${android_sdk_root}/platforms/android-${android_sdk_version}" diff --git a/engine/src/flutter/ci/binary_size_treemap.sh b/engine/src/flutter/ci/binary_size_treemap.sh index 52e2bea6d8a..769423c5c46 100755 --- a/engine/src/flutter/ci/binary_size_treemap.sh +++ b/engine/src/flutter/ci/binary_size_treemap.sh @@ -22,9 +22,8 @@ if [ "$(uname)" == "Darwin" ]; then else NDK_PLATFORM="linux-x86_64" fi -NDK_VERSION="28.2.13676358" -ADDR2LINE="flutter/third_party/android_tools/sdk/ndk/$NDK_VERSION/toolchains/llvm/prebuilt/$NDK_PLATFORM/bin/llvm-addr2line" -NM="flutter/third_party/android_tools/sdk/ndk/$NDK_VERSION/toolchains/llvm/prebuilt/$NDK_PLATFORM/bin/llvm-nm" +ADDR2LINE="flutter/third_party/android_tools/ndk/toolchains/llvm/prebuilt/$NDK_PLATFORM/bin/llvm-addr2line" +NM="flutter/third_party/android_tools/ndk/toolchains/llvm/prebuilt/$NDK_PLATFORM/bin/llvm-nm" # Run the binary size script from the buildroot directory so the treemap path # navigation will start from there. diff --git a/engine/src/flutter/sky/tools/flutter_gdb b/engine/src/flutter/sky/tools/flutter_gdb index d14b56bc4c8..3e7e373d376 100755 --- a/engine/src/flutter/sky/tools/flutter_gdb +++ b/engine/src/flutter/sky/tools/flutter_gdb @@ -26,7 +26,6 @@ previous run for a given device, then you can skip this step by passing """ ADB_LOCAL_PATH = 'flutter/third_party/android_tools/sdk/platform-tools/adb' -ANDROID_NDK_VERSION = '28.2.13676358' def _get_flutter_root(): @@ -85,7 +84,7 @@ class GdbClient(object): SYSTEM_LIBS_PATH = '/tmp/flutter_gdb_device_libs' def _gdb_local_path(self): - GDB_LOCAL_PATH = ('flutter/third_party/android_tools/sdk/ndk/%s/prebuilt/%%s-x86_64/bin/gdb' % ANDROID_NDK_VERSION) + GDB_LOCAL_PATH = ('flutter/third_party/android_tools/ndk/prebuilt/%s-x86_64/bin/gdb') if sys.platform.startswith('darwin'): return GDB_LOCAL_PATH % 'darwin' else: @@ -193,7 +192,7 @@ class GdbServer(object): return 1 abi = _get_device_abi(adb_command) - gdb_server_local_path = 'flutter/third_party/android_tools/sdk/ndk/%s/prebuilt/android-%s/gdbserver/gdbserver' % (ANDROID_NDK_VERSION, abi) + gdb_server_local_path = 'flutter/third_party/android_tools/ndk/prebuilt/android-%s/gdbserver/gdbserver' % abi # Copy gdbserver to the package's data directory. subprocess.check_call(adb_command + ['push', diff --git a/engine/src/flutter/testing/analyze_core_dump.sh b/engine/src/flutter/testing/analyze_core_dump.sh index 72bdbae9abe..bf558842048 100755 --- a/engine/src/flutter/testing/analyze_core_dump.sh +++ b/engine/src/flutter/testing/analyze_core_dump.sh @@ -18,8 +18,7 @@ if [ "$UNAME" == "Linux" ]; then if [ -x "$(command -v gdb)" ]; then GDB=gdb else - NDK_VERSION="28.2.13676358" - GDB=$BUILDROOT/flutter/third_party/android_tools/sdk/ndk/$NDK_VERSION/prebuilt/linux-x86_64/bin/gdb + GDB=$BUILDROOT/flutter/third_party/android_tools/ndk/prebuilt/linux-x86_64/bin/gdb fi echo "GDB=$GDB" $GDB $EXE $CORE --batch -ex "thread apply all bt" > $OUTPUT diff --git a/engine/src/flutter/tools/android_sdk/create_cipd_packages.sh b/engine/src/flutter/tools/android_sdk/create_cipd_packages.sh index 39aa44592e5..3ad8bf0a901 100755 --- a/engine/src/flutter/tools/android_sdk/create_cipd_packages.sh +++ b/engine/src/flutter/tools/android_sdk/create_cipd_packages.sh @@ -122,6 +122,23 @@ for platform in "${platforms[@]}"; do done done + # Special treatment for NDK to move to expected directory. + # Instead of the ndk being in `sdk/ndk/../`, it will be + # in `ndk/`. + # This simplifies the build scripts, and enables version difference between + # the Dart and Flutter build while reusing the same build rules. + # See https://github.com/flutter/flutter/issues/136666#issuecomment-1805467578 + mv $upload_dir/sdk/ndk $upload_dir/ndk-bundle + ndk_sub_paths=`find $upload_dir/ndk-bundle -maxdepth 1 -type d` + ndk_sub_paths_arr=($ndk_sub_paths) + mv ${ndk_sub_paths_arr[1]} $upload_dir/ndk + rm -rf $upload_dir/ndk-bundle + + if [[ ! -d "$upload_dir/ndk" ]]; then + echo "Failure to bundle ndk for platform" + exit 1 + fi + # Accept all licenses to ensure they are generated and uploaded. yes "y" | $sdkmanager_path --licenses --sdk_root=$sdk_root cp -a "$sdk_root/licenses" "$upload_dir/sdk" diff --git a/examples/flutter_view/android/app/build.gradle b/examples/flutter_view/android/app/build.gradle index 268d6aefc0d..efa7cccc482 100644 --- a/examples/flutter_view/android/app/build.gradle +++ b/examples/flutter_view/android/app/build.gradle @@ -11,6 +11,14 @@ 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 diff --git a/examples/hello_world/android/app/build.gradle.kts b/examples/hello_world/android/app/build.gradle.kts index 175e23095a7..d0e5ec689c8 100644 --- a/examples/hello_world/android/app/build.gradle.kts +++ b/examples/hello_world/android/app/build.gradle.kts @@ -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 diff --git a/examples/image_list/android/app/build.gradle b/examples/image_list/android/app/build.gradle index 073fbef80c9..ecacdc2d0d8 100644 --- a/examples/image_list/android/app/build.gradle +++ b/examples/image_list/android/app/build.gradle @@ -29,6 +29,14 @@ 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 diff --git a/examples/layers/android/app/build.gradle b/examples/layers/android/app/build.gradle index b743e9262dc..a954ffd2494 100644 --- a/examples/layers/android/app/build.gradle +++ b/examples/layers/android/app/build.gradle @@ -11,6 +11,14 @@ 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 diff --git a/examples/platform_channel/android/app/build.gradle b/examples/platform_channel/android/app/build.gradle index 3572148b067..91546cbd1c6 100644 --- a/examples/platform_channel/android/app/build.gradle +++ b/examples/platform_channel/android/app/build.gradle @@ -29,6 +29,14 @@ 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 diff --git a/examples/platform_view/android/app/build.gradle b/examples/platform_view/android/app/build.gradle index e99b4d5889f..1e3b076754f 100644 --- a/examples/platform_view/android/app/build.gradle +++ b/examples/platform_view/android/app/build.gradle @@ -29,6 +29,14 @@ 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 diff --git a/packages/integration_test/example/android/app/build.gradle.kts b/packages/integration_test/example/android/app/build.gradle.kts index cb5b92fcc40..bc21ccd97cf 100644 --- a/packages/integration_test/example/android/app/build.gradle.kts +++ b/packages/integration_test/example/android/app/build.gradle.kts @@ -13,6 +13,15 @@ android { 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. + val 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