适配Android12时使用Nearby Message API因PendingIntent崩溃如何解决
问题原因
该异常并不是你自己代码中创建的PendingIntent导致的,从崩溃栈可以看到报错出现在play-services-base@@17.5.0的内部逻辑中:你当前使用的play-services-nearby:18.0.0依赖的底层play-services-base版本过低,该版本还未适配Android12的规则,库内部自行创建PendingIntent时没有指定FLAG_IMMUTABLE或FLAG_MUTABLE,所以哪怕你自己的代码里已经给PendingIntent加了正确的标志,依然会触发崩溃。
解决方案
- 方案1:升级
play-services-nearby到适配Android12的版本
直接升级依赖到19.0.0及以上版本即可,这些版本已经升级了底层依赖的play-services-base,库内部创建PendingIntent时已经正确添加了必填标志:implementation 'com.google.android.gms:play-services-nearby:19.0.0' - 方案2:强制升级底层
play-services-base依赖
如果你暂时无法升级play-services-nearby版本,可以在项目依赖中主动引入适配了Android12的play-services-base版本,覆盖play-services-nearby传递依赖的低版本:implementation 'com.google.android.gms:play-services-base:18.0.1' - 附加优化:如果你的业务不需要修改PendingIntent的内容,官方更推荐使用
PendingIntent.FLAG_IMMUTABLE代替你当前使用的FLAG_MUTABLE,安全性更高。
内容的提问来源于stack exchange,提问作者Garry
相关产品推荐
相关产品推荐

