React Native适配Android 12启动时PendingIntent FLAG_IMMUTABLE报错求助
问题根源
从报错堆栈可以明确看到崩溃来自androidx.work(Jetpack WorkManager)库,低版本(低于2.7.0)的WorkManager没有适配Android 12的PendingIntent规则,你全局搜不到相关代码是因为这个是间接引入的原生安卓依赖,很多React Native第三方库都会默认引入低版本的WorkManager。
解决方案
按以下步骤操作即可修复:
- 第一步:打开项目安卓根目录的
android/build.gradle文件,在allprojects配置块中添加强制版本指定规则,锁定WorkManager版本到适配Android 12的2.7.1版本:
allprojects { configurations.all { resolutionStrategy { force 'androidx.work:work-runtime:2.7.1' } } }
- 第二步(可选,第一步操作后仍然崩溃的情况下执行):打开
android/app/build.gradle文件,在dependencies块中主动引入高版本WorkManager依赖:
dependencies { // 原有依赖保持不变,新增下面一行 implementation 'androidx.work:work-runtime:2.7.1' }
- 第三步:清理安卓构建缓存后重新打包
进入安卓目录执行清理命令:
cd android && ./gradlew clean
回到项目根目录重新运行应用即可。
补充说明
如果后续出现类似Android版本适配崩溃,优先查看报错堆栈最顶层的类归属的依赖库,直接升级对应库或者强制指定兼容版本即可,不需要排查自有业务代码,大多是间接依赖的原生库未适配新系统规则导致。
内容的提问来源于stack exchange,提问作者Andrew Royce
相关产品推荐
相关产品推荐

