【问题标题】:react native application on emulator stuck on white screen对卡在白屏上的模拟器上的本机应用程序做出反应
【发布时间】:2019-07-20 06:04:54
【问题描述】:

仅在 android 上且仅在模拟器中,如果我运行我的 react native 应用程序,该应用程序不会启动并卡在白屏上。终端中的捆绑器没有收到任何连接请求。

它曾经可以工作,当我使用相同的命令(react-native run-android)在设备上运行时它可以工作

我在 react native 0.57.8

这是我从 react-native log-android 得到的日志:

    02-26 17:12:21.527  6544  6544 D ReactNative: ReactInstanceManager.ctor()
    02-26 17:12:21.606  6544  6544 D ReactNative: ReactInstanceManager.createReactContextInBackground()
    02-26 17:12:21.606  6544  6544 D ReactNative: ReactInstanceManager.recreateReactContextInBackgroundInner()
    02-26 17:12:21.629  6544  6544 D ReactNative: ReactInstanceManager.recreateReactContextInBackgroundFromBundleLoader()
    02-26 17:12:21.629  6544  6544 D ReactNative: ReactInstanceManager.recreateReactContextInBackground()
    02-26 17:12:21.629  6544  6544 D ReactNative: ReactInstanceManager.runCreateReactContextOnNewThread()
    02-26 17:12:21.665  6544  6604 D ReactNative: ReactInstanceManager.createReactContext()
    02-26 17:12:21.727  6544  6604 D ReactNative: Initializing React Xplat Bridge.
    02-26 17:12:21.729  6544  6604 D ReactNative: Initializing React Xplat Bridge before initializeBridge
    02-26 17:12:21.735  6544  6604 D ReactNative: Initializing React Xplat Bridge after initializeBridge
    02-26 17:12:21.735  6544  6604 D ReactNative: CatalystInstanceImpl.runJSBundle()

我什至尝试通过 git 将旧代码版本恢复到我知道有效的版本,但仍然失败,所以我认为我的机器和模拟器可能存在配置问题,但我不确定是什么。

知道是什么导致了这个问题吗?

【问题讨论】:

  • 也许可以尝试清除捆绑程序缓存,例如 npm start -- --reset-cache。等待它运行,然后启动模拟器。
  • 我想到的唯一可能是网络连接确保你的模拟器有活动的网络连接,我可以看到你的 wifi 有一个小十字这是什么原因?还要检查您的模拟器是否有任何代理设置或其他东西?
  • 模拟器的操作系统版本是多少?
  • 谢谢@Navneetkumar。你的评论让我走上了正轨。我过去曾尝试设置 Charles Proxy,但该设置仍处于活动状态...
  • 很高兴听到您的问题得到解决,如果我的回答被接受会更好.. :D

标签: android react-native debugging android-emulator


【解决方案1】:

当我开始一个新项目并将组件从旧项目转移到其中时,我可以看到我的应用程序正在通过 console.log 运行,但留下一个空白屏幕。

最终我发现根组件 D'OH 需要 style={{flex: 1}}

【讨论】:

    【解决方案2】:

    根据Amir's 的回答,我删除了我的 Android 虚拟设备并安装了一个更新的设备,但仍然出现黑屏。

    我读到有人通过清除手机缓存使其工作。最后我试了一下,它清除了手机缓存并清除了与App相关的手机数据。这有点有趣,因为我已经安装了一个新的虚拟设备,所以不应该有缓存的情况,

    简而言之通过清除模拟器中的应用缓存,我能够恢复正常工作的应用

    【讨论】:

    • 这对我有用。我遇到了同样的问题,我的模拟器上有互联网连接,其他一切似乎都很好。然后我清除了缓存,它工作了。
    【解决方案3】:
    1. 只需转到命令提示符类型 Ipconfig。
    2. 打开安卓模拟器的扩展控件->设置-代理
    3. 在模拟器代理设置中检查并粘贴 IP 地址,并将端口号设置为例如 8888
    4. 重新启动应用程序。 Check Image For Reference

    【讨论】:

      【解决方案4】:

      我刚刚关闭了应用程序从模拟器中卸载了它然后运行react-native run-android现在很好

      【讨论】:

        【解决方案5】:

        这是一个错误,您可以追踪this issue 获取更多信息。他们在那里提到的解决此问题的唯一解决方案是在 avd 中创建另一个仿真器设备。


        更新

        另一个解决方案是通过 android studio 运行应用程序(通过在 android studio 中打开 android 文件夹)并运行它来查看错误!

        【讨论】:

          【解决方案6】:

          我想到的唯一可能性是网络连接:

          1. 确保您的模拟器具有有效的网络连接。
          2. 我可以看到你的wifi有一个小十字,这是什么原因?
          3. 另外,请检查您的模拟器是否有任何代理设置或其他东西?

          【讨论】:

            【解决方案7】:

            感谢@Navneet Kumar,我发现几周前我曾尝试在模拟器上设置 Charles Proxy。我认为该设置仅限于一个模拟设备,但显然该设置在所有设备之间共享。 恢复这些设置,一切正常 (https://medium.com/@daptronic/the-android-emulator-and-charles-proxy-a-love-story-595c23484e02)。

            谢谢

            【讨论】:

              猜你喜欢
              • 2017-10-13
              • 1970-01-01
              • 1970-01-01
              • 2019-08-21
              • 1970-01-01
              • 2011-06-15
              • 2021-07-22
              • 2017-03-25
              相关资源
              最近更新 更多