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

React Native 67.5升级Android SDK34后Release包崩溃求助

针对React Native 67.5 + Android SDK 34 Release启动崩溃的解决方案

1. 检查Release打包的Bundle生成配置

  • 打开android/app/build.gradle,确保release构建变体中开启bundle打包:
    android {
        ...
        buildTypes {
            release {
                ...
                minifyEnabled enableProguardInReleaseBuilds
                proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
                // 关键配置:确保Release模式下生成并打包bundle
                project.ext.react = [
                    bundleInRelease: true,
                    entryFile: "index.js" // 若使用TS则改为index.tsx
                ]
            }
        }
    }
    
  • 手动预先生成bundle文件,避免打包遗漏:
    先创建android/app/src/main/assets目录(若不存在),再执行命令:
    npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
    

2. 适配Android SDK 34的文件权限

SDK34收紧了文件访问规则,需检查:

  • 在AndroidManifest.xml中添加必要权限(兼容新旧版本):
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
    
  • 解压打包后的APK,确认assets/index.android.bundle文件存在,若缺失则重新执行bundle生成命令。

3. 调整Gradle配置适配SDK34

RN67.5默认配置需适配SDK34:

  • 在android/build.gradle中更新SDK版本:
    buildscript {
        ext {
            buildToolsVersion = "34.0.0"
            minSdkVersion = 21
            compileSdkVersion = 34
            targetSdkVersion = 34
        }
        ...
    }
    
  • 升级Gradle版本(当前7.3可兼容,升级到7.4适配性更好),修改gradle-wrapper.properties:
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
    

4. 修复ProGuard混淆问题

RN核心类被混淆会导致bundle加载失败,检查proguard-rules.pro:

  • 确保包含React Native基础混淆规则:
    -keep class com.facebook.react.** { *; }
    -keep class com.facebook.react.bridge.** { *; }
    -keep class com.facebook.react.modules.** { *; }
    -keep class com.facebook.react.uimanager.** { *; }
    -keep class javax.annotation.** { *; }
    -keep class kotlin.** { *; }
    -keep class kotlinx.coroutines.** { *; }
    
  • 若使用第三方RN库,添加对应库的混淆规则。

5. 彻底清理重建项目

执行以下命令清除缓存并重新打包:

cd android && ./gradlew clean
cd .. && rm -rf node_modules && npm install
npx react-native start --reset-cache
cd android && ./gradlew assembleRelease

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 06:05:01