From da512c344f984d1aa1cef701f8c36032e707377a Mon Sep 17 00:00:00 2001 From: Digvijaysinh Chauhan Date: Mon, 31 Aug 2026 10:03:37 +0530 Subject: [PATCH 1/2] Bump cameraxVersion to 1.6.2, remove concurrent-futures workaround camera-core 1.6.2 includes an upstream fix removing the JSpecify type-use annotation that required consumers to explicitly declare androidx.concurrent:concurrent-futures on their compile classpath (https://issuetracker.google.com/issues/543937345). With 1.6.2, that workaround (added previously) is no longer needed, so this removes the explicit dependency and its regression test. --- .../camera_android_camerax/CHANGELOG.md | 7 ++++ .../android/build.gradle.kts | 6 +--- .../ConcurrentFuturesDependencyTest.java | 32 ------------------- .../camera_android_camerax/pubspec.yaml | 2 +- 4 files changed, 9 insertions(+), 38 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ConcurrentFuturesDependencyTest.java diff --git a/packages/camera/camera_android_camerax/CHANGELOG.md b/packages/camera/camera_android_camerax/CHANGELOG.md index f8cfdc5da340..7d7f7230fac6 100644 --- a/packages/camera/camera_android_camerax/CHANGELOG.md +++ b/packages/camera/camera_android_camerax/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.7.4+8 + +* Bumps cameraxVersion from 1.6.1 to 1.6.2, which includes an upstream fix + removing the need for the explicit `androidx.concurrent:concurrent-futures` + dependency workaround. Removes that workaround dependency and its + regression test accordingly. + ## 0.7.4+7 * Updates pigeon dev_dependency to ^27.3.2 for analyzer 14 compatibility. diff --git a/packages/camera/camera_android_camerax/android/build.gradle.kts b/packages/camera/camera_android_camerax/android/build.gradle.kts index b527e68f4fda..52315b3fc7a0 100644 --- a/packages/camera/camera_android_camerax/android/build.gradle.kts +++ b/packages/camera/camera_android_camerax/android/build.gradle.kts @@ -76,16 +76,12 @@ android { dependencies { // CameraX core library using the camera2 implementation must use same version number. - val cameraxVersion = "1.6.1" + val cameraxVersion = "1.6.2" implementation("androidx.camera:camera-core:${cameraxVersion}") implementation("androidx.camera:camera-camera2:${cameraxVersion}") implementation("androidx.camera:camera-lifecycle:${cameraxVersion}") implementation("androidx.camera:camera-video:${cameraxVersion}") implementation("com.google.guava:guava:33.5.0-android") - // camera-core's compiled classes reference CallbackToFutureAdapter type annotations; - // without this explicit dependency, javac fails to resolve them during compilation. - // Upstream: https://issuetracker.google.com/issues/543937345 - implementation("androidx.concurrent:concurrent-futures:1.2.0") testImplementation("junit:junit:4.13.2") testImplementation("org.mockito:mockito-core:5.23.0") testImplementation("org.mockito:mockito-inline:5.2.0") diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ConcurrentFuturesDependencyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ConcurrentFuturesDependencyTest.java deleted file mode 100644 index 339dbac0cae4..000000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ConcurrentFuturesDependencyTest.java +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2013 The Flutter Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertNotNull; - -import androidx.concurrent.futures.CallbackToFutureAdapter; -import org.junit.Test; - -/** - * Regression test for https://github.com/flutter/flutter/issues/190505. - * - *

{@code camera-core}'s compiled classes carry Jspecify {@code @NonNull} type annotations on - * members that reference {@link CallbackToFutureAdapter}. javac needs that class on the compile - * classpath to process those annotations, even though this plugin never calls the annotated members - * directly. Without an explicit {@code androidx.concurrent:concurrent-futures} dependency, - * resolution of that class can silently depend on transitive dependency behavior and fail with - * "class file for androidx.concurrent.futures.CallbackToFutureAdapter not found" during {@code - * compileDebugJavaWithJavac}. - * - *

The static reference to {@link CallbackToFutureAdapter} below means that if the explicit - * dependency in {@code android/build.gradle.kts} is ever removed, this test target fails to compile - * instead of the break only surfacing as a build error for consumers. - */ -public class ConcurrentFuturesDependencyTest { - @Test - public void callbackToFutureAdapter_isOnClasspath() { - assertNotNull(CallbackToFutureAdapter.class); - } -} diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index fc7165f5fc7b..4ce70f4588b3 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -2,7 +2,7 @@ name: camera_android_camerax description: Android implementation of the camera plugin using the CameraX library. repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_android_camerax issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 -version: 0.7.4+7 +version: 0.7.4+8 environment: sdk: ^3.12.0 From 31054fc3efaaa77f6a7707305c1939ebcb04b5ba Mon Sep 17 00:00:00 2001 From: Digvijaysinh Chauhan Date: Tue, 1 Sep 2026 09:48:40 +0530 Subject: [PATCH 2/2] Expand changelog to list each camera-* library version bump --- packages/camera/camera_android_camerax/CHANGELOG.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/camera/camera_android_camerax/CHANGELOG.md b/packages/camera/camera_android_camerax/CHANGELOG.md index 7d7f7230fac6..0e5ce216e775 100644 --- a/packages/camera/camera_android_camerax/CHANGELOG.md +++ b/packages/camera/camera_android_camerax/CHANGELOG.md @@ -1,9 +1,13 @@ ## 0.7.4+8 -* Bumps cameraxVersion from 1.6.1 to 1.6.2, which includes an upstream fix - removing the need for the explicit `androidx.concurrent:concurrent-futures` - dependency workaround. Removes that workaround dependency and its - regression test accordingly. +* Bumps cameraxVersion from 1.6.1 to 1.6.2. +* Updates androidx.camera:camera-core from 1.6.1 to 1.6.2. +* Updates androidx.camera:camera-camera2 from 1.6.1 to 1.6.2. +* Updates androidx.camera:camera-lifecycle from 1.6.1 to 1.6.2. +* Updates androidx.camera:camera-video from 1.6.1 to 1.6.2. +* Removes the explicit `androidx.concurrent:concurrent-futures` dependency + workaround and its regression test, since camera-core 1.6.2 includes an + upstream fix that makes it unnecessary. ## 0.7.4+7