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

Android 14 Predictive Back触发setVisibility=true崩溃问题求助

问题描述

在启用Predictive Back的Android 14设备上,使用返回手势执行返回过渡时,应用偶尔会崩溃,对应的崩溃日志为:

ActivityTaskManager     system_server                        E  setVisibility=true while transition is not collecting or finishing ActivityRecord{264a012 u0 com.my.package/.Activity1 t6967} caller=com.android.server.wm.ActivityRecord.setVisibility:5287 com.android.server.wm.BackNavigationController.setLaunchBehind:1161 com.android.server.wm.BackNavigationController.-$$Nest$smsetLaunchBehind:0 com.android.server.wm.BackNavigationController$AnimationHandler$ScheduleAnimationBuilder.applyPreviewStrategy:1103 com.android.server.wm.BackNavigationController$AnimationHandler$ScheduleAnimationBuilder.build:1122 com.android.server.wm.BackNavigationController.scheduleAnimation:392 com.android.server.wm.BackNavigationController.startBackNavigation:369 com.android.server.wm.ActivityTaskManagerService.startBackNavigation:1841

项目采用Jetpack Compose UI,创建3个简单Activity后,在从Activity2/3返回Activity1时,多次前后导航即可复现该崩溃。

解决方法
  • 临时禁用Predictive Back
    在AndroidManifest.xml中为目标Activity或整个应用添加属性关闭该功能:

    <!-- 单个Activity -->
    <activity
        android:name=".Activity1"
        android:enableOnBackInvokedCallback="false" />
    
    <!-- 全局应用级别 -->
    <application
        ...
        android:enableOnBackInvokedCallback="false">
    
  • 升级Jetpack Compose依赖
    该问题属于Android 14与Compose的兼容性bug,将Compose相关依赖(如compose-bom、activity-compose)升级到最新稳定版本,Google后续修复了这类过渡动画与系统Activity管理的冲突问题。

  • 排查Activity可见性相关操作
    检查所有Activity的生命周期回调及Compose代码,确保在返回过渡期间没有手动调用setVisibility()或其他修改Activity可见性的逻辑,避免干扰系统的过渡状态。

  • 迁移到Single Activity架构
    基于Jetpack Compose的项目推荐使用Single Activity架构,通过Compose Navigation管理页面路由,减少多Activity切换带来的系统动画冲突,从根源上规避这类跨Activity导航的崩溃问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 15:42:17