React Native新项目启动报错:invariant violation: TestApp1未在安卓模拟器注册
解决React Native新项目启动时旧项目名未注册报错问题
针对你遇到的invariant violation: TestApp1 has not been registered报错,以下是几个针对性的排查和解决步骤:
1. 彻底清理安卓项目构建缓存
进入安卓子目录执行清理命令:
cd android && ./gradlew clean cd ..
2. 强制重置Metro缓存启动服务
避免Metro缓存留存旧项目信息:
npx react-native start --reset-cache
3. 检查安卓端核心配置文件
- 打开
android/app/src/main/java/com/testapp2/MainActivity.kt(若为Java项目则是.java文件),确认getMainComponentName()方法返回值为"TestApp2" - 打开
android/app/src/main/java/com/testapp2/MainApplication.kt,检查packageName是否为com.testapp2,getJSMainModuleName()返回是否为"index"
4. 卸载模拟器中的旧应用残留
打开安卓模拟器,找到并卸载TestApp1应用,避免新旧应用的缓存冲突
5. 重新安装依赖(可选)
若以上步骤无效,尝试删除依赖后重新安装:
rm -rf node_modules && rm package-lock.json && npm install
最后重新启动流程
- 关闭安卓模拟器
- 终止所有Node进程(Windows bash中可执行
pkill node,或用Windows任务管理器结束所有node.exe进程) - 重新启动模拟器
- 执行
npx react-native start --reset-cache启动Metro - 新开bash窗口执行
npx react-native run-android
内容的提问来源于stack exchange,提问作者Danny Remington - OMS
相关产品推荐
相关产品推荐

