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

适配Android 14(SDK 34)触发SecurityException崩溃的原因排查

Android 14(SDK 34)适配后Galaxy A13/A72设备Foreground Service崩溃分析

适配SDK 34(Android 14)后,仅在Galaxy A13和A72两款Android 14设备上出现少量前台服务启动崩溃,崩溃日志如下:

java.lang.SecurityException: Starting FGS with type mediaProjection callerApp=ProcessRecord{44a8006 6938:com.foo/u0a6} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION] any of the permissions allOf=false [android.permission.CAPTURE_VIDEO_OUTPUT, android:project_media] 
       at android.os.Parcel.createExceptionOrNull(Parcel.java:3069)
       at android.os.Parcel.createException(Parcel.java:3053)
       at android.os.Parcel.readException(Parcel.java:3036)
       at android.os.Parcel.readException(Parcel.java:2978)
       at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:7214)
       at android.app.Service.startForeground(Service.java:775)
       at com.foo.FooService.onStartCommand(FooService.java:28)

可能的原因分析:

  • 权限配置或声明问题:
    Android 14要求MediaProjection类型的前台服务必须声明android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION权限,同时需持有CAPTURE_VIDEO_OUTPUT或project_media二者之一。即便你已在Manifest中声明权限,三星One UI定制ROM可能对权限校验逻辑更严格——比如权限声明位置错误(需放在<manifest>标签下而非<application>内),或者动态申请权限的时序存在问题(启动前台服务前未确保权限已完全授予)。

  • 三星定制ROM的权限校验差异:
    Galaxy A13和A72搭载的One UI版本在前台服务权限校验逻辑上可能与原生Android 14存在差异。原生系统允许的部分临时豁免场景,在三星ROM中被收紧,导致边缘场景触发权限异常。

  • 前台服务启动时机不当:
    若FooService在MediaProjection会话尚未完全初始化时就调用startForeground(),三星设备可能会判定权限不满足。比如获取MediaProjection实例后立即启动前台服务,未等待会话建立完成,此时设备尚未正确识别已授予的投影权限。

  • 权限授予状态异常未处理:
    部分用户可能在授予权限后通过系统设置撤销,但应用未处理权限被撤销的场景,导致启动前台服务时触发SecurityException。三星设备的权限管理逻辑可能让这种场景更容易触发崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:47:18