Android 14下AssetPackManager注册监听器触发SecurityException求助
解决Android 14中AssetPackManager触发的SecurityException问题
问题根源
你碰到的这个致命异常,是因为Android 14(API 34)强制要求所有非系统专属的广播接收器必须明确指定RECEIVER_EXPORTED或RECEIVER_NOT_EXPORTED属性。而你当前用的Google Play Asset Delivery库版本(1.10.3)太旧,内部注册广播接收器时没适配这个新规则,所以触发了安全异常。
解决方案
直接升级Play Core库到适配Android 14的版本就行:
- 推荐用Google拆分后的轻量化
asset-delivery库,替换原依赖:implementation 'com.google.android.play:asset-delivery:2.2.2' - 如果坚持用一体化的Play Core库,至少要升级到1.12.0版本:
implementation 'com.google.android.play:core:1.12.0'
补充说明
- 你不需要手动设置
RECEIVER_EXPORTED或RECEIVER_NOT_EXPORTED,升级后的库内部已经做好了适配,会自动处理广播接收器的属性配置。 - 系统显示下载状态是Asset Delivery框架自带的逻辑,不用你额外注册接收器,升级库后这部分功能也会正常运行。
内容的提问来源于stack exchange,提问作者Flummox uses codidact.com
相关产品推荐
相关产品推荐

