Repository navigation
Description
#184286 was closed by #184630, and I cherry-picked it to the 3.44 branch in #189759, which shipped in stable 3.44.8. The crash still reaches production on 3.44.8. The previous thread is locked, so I am opening this as a new report.
What happens
AccessibilityBridge is constructed during FlutterActivity.onCreate. Its constructor calls setBoldTextFlag() behind Build.VERSION.SDK_INT >= API_LEVELS.API_31, and setBoldTextFlag() reads the field through the Api31Impl helper:
// AccessibilityBridge.java:663
boolean shouldBold =
Api31Impl.isBoldText(rootAccessibilityView.getResources().getConfiguration());
// AccessibilityBridge.java:3267
private static class Api31Impl {
@DoNotInline
static boolean isBoldText(Configuration configuration) {
int fontWeightAdjustment = configuration.fontWeightAdjustment;
return fontWeightAdjustment != Configuration.FONT_WEIGHT_ADJUSTMENT_UNDEFINED
&& fontWeightAdjustment >= BOLD_TEXT_WEIGHT_ADJUSTMENT;
}
}Moving the read into Api31Impl stops the class verifier from resolving the field while AccessibilityBridge is loaded. It does not stop the read itself. On a ROM that reports SDK_INT >= 31 while android.content.res.Configuration carries no fontWeightAdjustment, the guard passes, isBoldText is entered, and resolution fails there instead. The failure moved one frame down rather than going away.
Stack trace (production, built with 3.44.8)
java.lang.NoSuchFieldError: No instance field fontWeightAdjustment of type I in class Landroid/content/res/Configuration; or its superclasses (declaration of 'android.content.res.Configuration' appears in /system/framework/framework.jar)
at io.flutter.view.AccessibilityBridge$Api31Impl.isBoldText (AccessibilityBridge.java)
at io.flutter.view.AccessibilityBridge.setBoldTextFlag (AccessibilityBridge.java:663)
at io.flutter.view.AccessibilityBridge.<init> (AccessibilityBridge.java:528)
at io.flutter.view.AccessibilityBridge.<init> (AccessibilityBridge.java:463)
at io.flutter.embedding.android.FlutterView.attachToFlutterEngine (FlutterView.java:1225)
at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onCreateView (FlutterActivityAndFragmentDelegate.java:437)
at io.flutter.embedding.android.FlutterActivity.createFlutterView (FlutterActivity.java:802)
at io.flutter.embedding.android.FlutterActivity.onCreate (FlutterActivity.java:652)
at android.app.Activity.performCreate (Activity.java:7994)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1548)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3406)
Api31Impl appearing in the frame confirms the build carries the 3.44.8 fix.
Occurrences
Crashlytics, two releases of the same app, both built with 3.44.8:
- 2026-08-01: 10 events from 2 installations
- 2026-08-06 to 2026-08-07: 14 events from 4 installations
Every event reports OnePlus8Pro on Android 11, with the OS name unresolved. Architecture is X86_64 in the August 1 batch and ARM64 afterwards. Reported memory and storage are roughly 4.3 GB each, which does not match the retail device, so these are most likely automated environments rather than end users. The code path is the same either way: FlutterActivity.onCreate is the first frame, and the process dies before anything is drawn.
Reproduction
I have no access to hardware, or to an image, that reports SDK_INT >= 31 without the field, so I cannot supply a minimal reproduction. The condition is reproducible in principle with any Configuration that declares API 31 while omitting fontWeightAdjustment.
Direction
On these ROMs the API level is not a reliable signal for the presence of the field, so gating on it cannot close the path. Containing the read so the flag falls back to "not bold" would leave startup intact. If that direction is acceptable, I can prepare the change.
flutter doctor -v
[✓] Flutter (Channel stable, 3.44.8, on macOS 26.5.2 25F84 darwin-arm64, locale ja-JP)
• Flutter version 3.44.8 on channel stable
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 058e0af2c2 (2 weeks ago), 2026-07-23 10:56:21 -0700
• Engine revision 0cd610717b
• Dart version 3.12.2
• DevTools version 2.57.0
[✓] Android toolchain - develop for Android devices (Android SDK version 36.1.0)
• Platform android-36.1, build-tools 36.1.0
• Java version OpenJDK Runtime Environment (build 21.0.10+-117844308-b1163.108)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 26.6)
• Build 17F113
• CocoaPods version 1.16.2
[✓] Chrome - develop for the web
[✓] Network resources
• No issues found!
Activity
puneetkukreja98 commentedon Aug 7, 2026
@Joyatou Thanks for the report, routing this to team-accessibility for further investigation.
Catch NoSuchFieldError when reading bold text setting on non-complian…
github-actions commentedon Aug 28, 2026
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.