Android端出现Undefined is not an object (evaluating 'Sn[e]')错误求解决
解决React Native Android端
Undefined is not an object (evaluating 'Sn[e]')错误 我之前也碰到过和React Native Fiber架构相关的这类运行时错误,结合你提到的关联代码injectFiberControlledHostComponent,给你几个亲测有效的排查和解决步骤:
彻底清理React Native缓存
缓存不一致是触发这类bundle运行时错误的高频原因,先把各类缓存清干净再试:# 清理npm缓存(用yarn的话换成yarn cache clean) npm cache clean --force # 重置React Native打包缓存并重启服务 npx react-native start --reset-cache清理完成后重新构建Android项目,再启动应用看看。
检查React Native版本兼容性
这个错误大概率和Fiber组件的注入逻辑有关,可能是当前RN版本存在已知bug,或是和依赖库版本不匹配:- 查看你当前RN版本的官方更新记录,确认是否有Fiber相关组件的修复补丁
- 如果是较旧版本,尝试升级到近期的稳定版(比如0.7x系列),或者回退到之前能正常运行的版本
排查自定义原生组件或第三方库
injectFiberControlledHostComponent是用来注册Fiber可控原生组件的,自定义组件或第三方库的注册逻辑出错很容易引发这个问题:- 检查你自己写的Android原生组件,确保
getName()返回的组件名称和JS端调用的完全一致 - 临时移除最近新增的第三方库,逐一排查是否是某个库导致的冲突
- 检查你自己写的Android原生组件,确保
重新生成Android端bundle文件
有时候自动生成的bundle可能存在损坏或编译不完整的情况,手动重新生成试试: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/生成完成后,用Android Studio重新构建并安装应用。
检查Gradle依赖一致性
虽然你说Gradle提示疑似无关,但还是建议核对下依赖版本:- 确保
android/build.gradle和android/app/build.gradle中的RN依赖版本,和项目根目录package.json里的版本完全一致 - 执行
./gradlew clean清理Android构建缓存,再重新构建项目
- 确保
内容的提问来源于stack exchange,提问作者BeniaminoBaggins
相关产品推荐
相关产品推荐

