React Native应用程序在模拟器中显示不正确的应用程序

时间:2016-11-01 00:21:49

标签: react-native

尝试在iOS模拟器中启动新创建的应用程序时,我遇到了这个非常奇怪的问题。

我创建了一个全新的项目并使用react-native run-ios启动了它。当它加载时,我点击应用程序图标并启动。加载后,它似乎加载了不正确的应用版本,或者它缺少填充应用的JavaScript。

我似乎无法解决这个问题。我做了一个干净的,重建。我重置了模拟器设置。我有打包机。我甚至重新启动了机器作为最后的尝试。

没有出现错误。我正在努力弄清楚发生了什么。

这是一张图片......您可以看到加载的应用中的内容即使在源代码中也是如此。

enter image description here 有什么想法会发生什么?

修改

即使打包器运行,我也无法访问JS文件。尝试执行以下操作:

http://localhost:8081/index.ios.bundle

...显示This site can not be reached

我尝试过react-native --port=9990。它开始,没有错误,但我仍然无法加载http://localhost:9990

3 个答案:

答案 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