You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 7及以下系统Jetpack Compose无障碍事件池崩溃排查求助

Android 7及以下设备Compose项目崩溃(AccessibilityEvent重复回收)排查提示

Firebase显示Android 7及以下版本设备出现如下崩溃,项目几乎完全基于Jetpack Compose开发,仅包含少量AndroidView组件,目前无法定位问题根源,求排查方向:

Fatal Exception: java.lang.IllegalStateException: Already in the pool!
       at android.util.Pools$SimplePool.release(Pools.java:112)
       at android.util.Pools$SynchronizedPool.release(Pools.java:161)
       at android.view.accessibility.AccessibilityEvent.recycle(AccessibilityEvent.java:1044)
       at android.view.accessibility.AccessibilityManager.sendAccessibilityEvent(AccessibilityManager.java:332)
       at android.view.ViewRootImpl.requestSendAccessibilityEvent(ViewRootImpl.java:7122)
       at android.view.ViewGroup.requestSendAccessibilityEvent(ViewGroup.java:906)
       at android.view.ViewGroup.requestSendAccessibilityEvent(ViewGroup.java:906)
       at android.view.ViewGroup.requestSendAccessibilityEvent(ViewGroup.java:906)
       at android.view.ViewGroup.requestSendAccessibilityEvent(ViewGroup.java:906)
       at android.view.ViewGroup.requestSendAccessibilityEvent(ViewGroup.java:906)
       at android.view.ViewGroup.requestSendAccessibilityEvent(ViewGroup.java:906)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.sendEvent(AndroidComposeViewAccessibilityDelegateCompat.android.kt:1169)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.sendSemanticsPropertyChangeEvents$ui_release(AndroidComposeViewAccessibilityDelegateCompat.android.kt:2123)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.checkForSemanticsChanges(AndroidComposeViewAccessibilityDelegateCompat.android.kt:1888)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.semanticsChangeChecker$lambda$32(AndroidComposeViewAccessibilityDelegateCompat.android.kt:1764)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.$r8$lambda$XMXpDxOWXXw8oFvZkg91zLjynx0(AndroidComposeViewAccessibilityDelegateCompat.android.kt)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat$$ExternalSyntheticLambda2.run(D8$$SyntheticClass)
       at android.os.Handler.handleCallback(Handler.java:815)
       at android.os.Handler.dispatchMessage(Handler.java:104)
       at android.os.Looper.loop(Looper.java:207)
       at android.app.ActivityThread.main(ActivityThread.java:5692)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:769)

排查提示

  • 升级Compose UI版本:该崩溃是Compose早期版本在旧Android系统上的无障碍事件重复回收bug,优先检查compose-ui版本是否低于1.4.0,升级到1.4.0及以上稳定版,官方已在后续版本修复该类问题。
  • 检查AndroidView的无障碍逻辑:项目中的少量AndroidView可能是触发点,确认这些原生View是否手动调用了AccessibilityEvent.recycle(),原生View的无障碍处理和Compose的无障碍代理可能冲突,导致事件被重复回收。
  • 临时屏蔽语义属性测试:如果升级版本后问题仍存在,可在疑似崩溃的页面/组件中用Modifier.semantics { clearAndSetSemantics { } }清除语义属性,排查是否是特定语义触发了重复事件。
  • 测试第三方无障碍服务:Android 7及以下设备上,第三方无障碍服务(如屏幕阅读器、悬浮工具类应用)可能干扰系统事件池,关闭所有第三方无障碍服务后测试是否还会崩溃。
  • 复现崩溃场景:在Android 7模拟器开启无障碍调试,操作混合了Compose和AndroidView的界面,结合Logcat查看无障碍事件的发送/回收日志,定位具体触发崩溃的UI操作。

内容的提问来源于stack exchange,提问作者Bakhtiyor Begmatov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 02:25:16