尝试在iOS模拟器中启动新创建的应用程序时,我遇到了这个非常奇怪的问题。
我创建了一个全新的项目并使用react-native run-ios
启动了它。当它加载时,我点击应用程序图标并启动。加载后,它似乎加载了不正确的应用版本,或者它缺少填充应用的JavaScript。
我似乎无法解决这个问题。我做了一个干净的,重建。我重置了模拟器设置。我有打包机。我甚至重新启动了机器作为最后的尝试。
没有出现错误。我正在努力弄清楚发生了什么。
这是一张图片......您可以看到加载的应用中的内容即使在源代码中也是如此。
修改
即使打包器运行,我也无法访问JS文件。尝试执行以下操作:
http://localhost:8081/index.ios.bundle
...显示This site can not be reached
我尝试过react-native --port=9990
。它开始,没有错误,但我仍然无法加载http://localhost:9990
。
答案 0 :(得分:1)
我遇到了同样的问题。我已经弄明白了,问题是在前一个应用程序的后台运行的进程不允许模拟器运行当前的应用程序。
这就是我所做的(Linux)
lsof -i :8081
并且杀死了我用
找到的所有模拟器和调试器进程kill -9 ID_OF_THE_PROCESS
答案 1 :(得分:1)
我同意@LuisGonzález上面提出的建议。最重要的是,你需要杀死绑定该线程的节点进程。因此,可以遵循以下步骤:
kill -9 <PROCESS_ID_OF_LOCALHOST_OR_DOMAIN_HOST>
kill -9 <PROCESS_ID_OF_TCP_LISTENER>
就我而言,情况如下:
PROJECTA 16901 dilipkosuri 10u IPv6 0xebee3sssfsfa7cd5d 0t0 TCP localhost:61383->localhost:XXXX (ESTABLISHED)
PROJECTA 16901 dilipkosuri 12u IPv6 0xebee3sssfsfa7cd5d 0t0 TCP localhost:61383->XXXX (ESTABLISHED)
node 95069 dilipkosuri 17u IPv6 0xebee67dsdsdf7c1dd 0t0 TCP localhost:XXXX->localhost:61383 (ESTABLISHED)
node 95069 dilipkosuri 20u IPv6 0xebee67f44dwse5b3d 0t0 TCP *:XXXX (LISTEN)
所以运行以下命令来解决问题。
kill -9 16901
kill -9 95069
或者,以下就足够了......
npm start -- --reset-cache
答案 2 :(得分:0)
情况可能是两个不同的应用程序共享相同的软件包ID,因此它打开了第一个已安装项目的软件包ID