求助:React Native调试APK启动崩溃,报错Undefined is not an object (Evaluating 'Sn[e]')
React Native Debug Build Crash After Upgrade to 0.55 (assembleDebug APK Fails)
我之前碰到过几乎一模一样的情况!升级RN版本后,react-native run-android能正常跑,但用gradlew assembleDebug打出来的包一启动就崩,而且日志还没有效信息,折腾了好一阵才解决。结合你的描述,大概率是旧构建缓存和新版本RN不兼容的问题,给你几个亲测有效的解决方案:
先彻底清掉所有构建缓存和依赖,这是最常见的解决办法:
打开终端依次执行这些命令(别用sudo,权限太高容易搞出文件权限问题):cd android ./gradlew clean rm -rf .gradle rm -rf app/build cd .. rm -rf node_modules npm install清理完再重新打
assembleDebug包试试,很多时候这一步就能解决问题。检查
android/app/build.gradle的调试构建配置,确保没意外开启了优化:
有些时候升级后Gradle配置会被默认修改,调试包开启了混淆或资源压缩就会崩。在buildTypes的debug块里加上这些配置:android { buildTypes { debug { minifyEnabled false shrinkResources false zipAlignEnabled false } } }强制生成新的JS Bundle
有时候assembleDebug会复用旧的JS Bundle,和新的原生代码不匹配。可以手动生成一次再打包:react-native bundle --platform android --dev true --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/生成完再执行
./gradlew assembleDebug。用
adb logcat抓详细崩溃日志
你说异常信息没用,试试用这个命令过滤错误日志:adb logcat *:E安装崩溃的APK后启动,就能看到具体的崩溃堆栈,比如是哪个原生模块加载失败,或者JS端的错误,能帮你精准定位问题。
我当时就是用第一步的清理方法解决的,毕竟升级RN后,旧的Gradle缓存和node_modules里的依赖残留很容易导致这种“局部正常、打包崩溃”的奇怪问题。
内容的提问来源于stack exchange,提问作者Sadanand
相关产品推荐
相关产品推荐

