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

升级Target SDK Version 31后React Native安卓应用崩溃求助

React Native升级targetSdkVersion/compileSdkVersion到31后Android 12崩溃解决方案

核心问题分析

Android 12(API 31)新增多项强制适配规则,你的React Native 0.64.4及部分依赖库版本未跟进这些要求,导致仅在Android 12设备上触发崩溃,低版本Android系统不受影响。

具体修复步骤

1. 升级Gradle构建工具版本

当前根build.gradle中com.android.tools.build:gradle为3.5.4,不支持API 31,需修改:

// 根build.gradle中buildscript.dependencies下的配置
classpath("com.android.tools.build:gradle:4.2.2")

同时修改gradle/wrapper/gradle-wrapper.properties中的gradle版本:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip

2. 适配Android 12的PendingIntent规则

Android 12要求所有PendingIntent必须指定FLAG_IMMUTABLE或FLAG_MUTABLE,你的部分依赖未处理该规则:

  • react-native-push-notification@5.1.0:该版本未适配Android 12,需升级至至少8.1.1版本,或手动修改其源码中创建PendingIntent的逻辑,添加对应flag。
  • @react-native-firebase/messaging@7.8.4:升级至至少14.1.0版本,适配Android 12的通知权限与PendingIntent要求。

3. 显式配置组件导出属性

Android 12要求所有可被外部调用的组件(Activity、Service、Receiver)必须显式设置android:exported属性:
打开android/app/src/main/AndroidManifest.xml,为所有<activity>、<service>、<receiver>标签添加该属性,示例:

<activity
    android:name=".MainActivity"
    android:exported="true"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
    android:launchMode="singleTask"
    android:windowSoftInputMode="adjustResize">

推送相关的Receiver(如ReactNativePushNotificationReceiver)也需添加android:exported="true"。

4. 更新Build Tools版本

根build.gradle中buildToolsVersion为30.0.2,需升级到适配API 31的版本:

buildToolsVersion = "31.0.0"

5. 升级其他过时依赖

检查并升级以下依赖到兼容API 31的版本:

  • react-native-image-picker:从3.2.1升级至4.0.0+
  • @react-native-community/push-notification-ios:升级至最新稳定版
  • rn-fetch-blob:该库已停止维护,建议替换为react-native-blob-util,或升级到最后兼容API 31的版本

验证流程

  1. 执行cd android && ./gradlew clean清理构建缓存
  2. 重新运行react-native run-android安装到Android 12设备
  3. 若仍有崩溃,通过Logcat查看具体报错信息,定位未适配的组件或代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:50:44