React Native 0.71.7应用在Android 10无法启动,Android 13正常
解决React Native 0.71.7在Android 10(API29)上启动崩溃问题
步骤1:先获取崩溃日志(核心前提)
无日志无法精准定位问题,通过以下方式抓取:
- 连接设备后执行命令:
过滤错误日志,重点搜索adb logcat *:EAndroidRuntime关键词,找到崩溃堆栈信息。 - 或用Android Studio打开项目,切换到Logcat窗口,选择对应设备和应用包名,查看启动时的崩溃详情。
步骤2:检查网络配置
Android 10默认限制明文网络请求,RN调试需连接Metro明文地址,确保:
- 在
AndroidManifest.xml的<application>标签内添加:android:usesCleartextTraffic="true" - 若自定义了
networkSecurityConfig,需在对应的xml文件中允许localhost明文请求:<domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">localhost</domain> </domain-config>
步骤3:调整Gradle配置
- 确认
android/build.gradle中的SDK版本:buildscript { ext { compileSdkVersion = 33 targetSdkVersion = 33 minSdkVersion = 21 // RN 0.71最低要求为21,不可高于29 } } - 检查第三方依赖版本,确保所有库适配API29,若有老库尝试更新至兼容版本。
步骤4:彻底清理项目缓存
执行以下命令清除缓存后重新构建:
cd android && ./gradlew clean cd .. && rm -rf node_modules && npm install npx react-native start --reset-cache npx react-native run-android
步骤5:检查NDK版本
RN 0.71.7推荐使用NDK 25.1.8937393,在android/build.gradle中指定:
android { ndkVersion "25.1.8937393" }
确保NDK版本兼容API29。
步骤6:发布版混淆配置检查
若发布版也崩溃,确认proguard-rules.pro包含RN核心类的防混淆规则:
-keep class com.facebook.react.** { *; } -keep class com.facebook.react.bridge.** { *; } -keep class com.facebook.react.turbomodule.** { *; }
内容的提问来源于stack exchange,提问作者Matthew De Jager
相关产品推荐
相关产品推荐

