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

React Native模拟器无法正常显示应用问题求助

解决React Native新项目在安卓模拟器空白/旧项目500错误的问题

我之前也踩过一模一样的坑——明明是全新创建的项目,模拟器却要么显示空白,要么弹出和旧测试应用相关的500错误,核心原因基本都是缓存残留或者旧进程/应用没清理干净,给你几个亲测有效的解决步骤:

1. 重置Metro打包器缓存

Metro的缓存很容易残留旧项目的资源,直接重置是最省心的办法:

# npm用户执行
npm start -- --reset-cache

# yarn用户执行
yarn start --reset-cache

运行这个命令后,Metro会彻底清空旧缓存,重新生成全新的缓存文件。

2. 清理安卓项目构建产物

安卓项目的build目录里会留存旧的编译产物,可能导致旧代码被重复打包:

# 先进入安卓子目录
cd android

# 执行清理命令
./gradlew clean

这个操作会删除所有旧的构建文件,确保下次构建是完全全新的流程。

3. 杀掉残留的Node/Metro进程

有时候Metro服务器或者Node进程没完全关闭,会偷偷复用旧缓存继续运行:

  • Windows系统:
    taskkill /f /im node.exe
    
  • Mac/Linux系统:
    pkill node
    

杀完进程后再重新启动Metro,确保是全新的运行实例。

4. 卸载模拟器里的旧测试应用

如果旧的测试应用还留在模拟器中,可能会和新项目产生包名或资源冲突:

  • 直接在模拟器操作:找到旧应用图标,长按拖到「卸载」区域完成删除;
  • 或者用adb命令卸载(替换成旧项目的包名):
    adb uninstall com.youroldapppackage
    

5. 重新构建并运行项目

完成上面的清理步骤后,回到项目根目录按顺序操作:

  1. 先启动Metro服务器:npm start
  2. 等Metro加载完成后,新开一个终端窗口运行:react-native run-android

额外排查点

如果还是有问题,可以检查这两个细节:

  • 确认新项目package.json里的name字段,以及安卓AndroidManifest.xml里的包名,和旧项目完全不同;
  • 验证模拟器能连接到Metro服务器:打开模拟器的浏览器,输入http://localhost:8081/index.bundle?platform=android,如果能正常加载bundle文件,说明网络连接没问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:37:54