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

React Native Android应用API Level 33迁移至34构建报错求助

React Native Android 从API Level 33迁移至34的构建问题解决方案

一、核心版本适配检查

  • React Native版本兼容
    RN 0.70.x对API 34的原生支持有限,建议升级RN至0.71.0+(该版本开始正式适配API 34);若暂不做大版本升级,需手动调整依赖与配置。
  • Gradle与AGP版本匹配
    Gradle 8.0.0搭配JDK 17是合规组合,但需确保Android Gradle Plugin(AGP)版本对应:Gradle 8.0需AGP 7.4.2+。修改android/build.gradle中的classpath:
    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.2'
        // 其他classpath依赖保持不变
    }
    
    同时确认android/gradle/wrapper/gradle-wrapper.properties的Gradle版本:
    distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.0-all.zip
    

二、统一Android SDK配置

项目级android/build.gradle

buildscript {
    ext {
        compileSdkVersion = 34
        targetSdkVersion = 34
        minSdkVersion = 21 // 按需调整最低兼容版本
        ndkVersion = "25.1.8937393"
    }
    // 其他配置保持不变
}

模块级android/app/build.gradle

android {
    namespace "com.your.app.package" // RN 0.70+必须配置命名空间
    compileSdkVersion rootProject.ext.compileSdkVersion

    defaultConfig {
        applicationId "com.your.app.package"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        // 其他配置保持不变
    }
    // 其他配置保持不变
}

三、依赖库兼容性升级

根据你的package.json,以下依赖需升级以适配API 34:

  • Firebase系列:版本不一致(app/messaging为16.2.0,crashlytics为17.4.1),统一升级至17.5.0+
  • @notifee/react-native:7.6.1版本过旧,升级至7.8.0+(修复API 34通知权限问题)
  • react-native-device-info:10.4.0升级至10.11.0+(适配API 34设备信息获取逻辑)
  • react-native-document-picker:8.1.3升级至9.0.0+(支持API 34文件选择权限)
  • react-native-splash-screen:3.3.0升级至3.6.0+(修复API 34启动页适配)
  • @react-native-community/checkbox:0.5.12已废弃,替换为@react-native-community/checkbox@0.6.0或RN内置Checkbox组件

升级命令示例:

npm install @react-native-firebase/app@17.5.0 @react-native-firebase/messaging@17.5.0 @react-native-firebase/crashlytics@17.5.0
npm install @notifee/react-native@7.8.0 react-native-device-info@10.11.0 react-native-document-picker@9.0.0 react-native-splash-screen@3.6.0

四、API 34特定适配

  • 添加通知权限:API 34新增POST_NOTIFICATIONS权限,在AndroidManifest.xml中添加:
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    
  • 文件访问适配:API 34收紧文件访问限制,依赖升级后会自动适配;若有自定义文件操作逻辑,需切换至MediaStore或SAF框架。
  • 后台启动限制:API 34禁止后台直接启动Activity,检查代码中是否有相关逻辑,改为通知跳转或前台服务实现。

五、清理缓存并重构

执行以下命令清除旧配置缓存,避免构建冲突:

cd android && ./gradlew clean
cd .. && rm -rf node_modules package-lock.json
npm install
npx react-native run-android

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 03:27:35