在卡在白屏上的模拟器上反应本机应用程序
react native application on emulator stuck on white screen
仅在 android 且仅在模拟器中,如果我 运行 我的 React 本机应用程序,该应用程序无法启动并卡在白屏上。终端中的捆绑器没有收到任何连接请求。
它曾经有效,当我 运行 在设备上使用相同的命令时它有效 (react-native 运行-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 恢复到我知道有效的旧代码版本,但仍然失败,所以我认为我的机器和模拟器可能存在配置问题,但我'我不确定是什么。
知道是什么导致了这个问题吗?
感谢@Navneet Kumar,我发现几周前我曾尝试在模拟器上设置 Charles Proxy。我认为该设置仅限于那个模拟设备,但显然该设置在所有设备之间共享。
还原这些设置,一切正常 (https://medium.com/@daptronic/the-android-emulator-and-charles-proxy-a-love-story-595c23484e02)。
谢谢
我想到的唯一可能性是网络连接:
- 确保您的模拟器具有有效的网络连接。
- 我看到你的 wifi 有一个小十字,这是什么原因?
- 此外,请检查您的模拟器是否有任何代理设置或其他设置?
这是一个错误,您可以跟踪 this issue 以获取更多信息。他们在那里提到的解决此问题的唯一解决方案是在 avd 中创建另一个仿真器设备。
更新
另一种解决方案是 运行 android 工作室的应用程序(通过打开 android 工作室中的 android 文件夹)并 运行 查看错误!
我刚刚关闭了应用程序,从模拟器中卸载了它,然后运行 react-native run-android
现在就好了
- 只需转到命令提示符类型 Ipconfig。
- 打开 Android 模拟器的扩展控件->Settings-Proxy
- 检查并粘贴模拟器代理设置中的 IP 地址,并将端口号设为例如 8888
- 重新启动应用程序。
Check Image For Reference
根据 的回答,我删除了我的 Android 虚拟设备并安装了一个更新的虚拟设备,但我仍然出现黑屏。
我读到有人通过清除 phone 缓存使其工作。最后我试了一下,它清除了phone缓存并清除了phone与App相关的数据。这有点有趣,因为我已经安装了一个新的虚拟设备,所以应该不会有缓存的情况,
In short by clearing app cache in emulator I was able to get back to working App
当我开始一个新项目并将组件从旧项目转移到其中时,我可以看到我的应用程序正在通过 console.log 运行,但留下一个空白屏幕。
最终我发现根组件 D'OH
需要 style={{flex: 1}}
仅在 android 且仅在模拟器中,如果我 运行 我的 React 本机应用程序,该应用程序无法启动并卡在白屏上。终端中的捆绑器没有收到任何连接请求。
它曾经有效,当我 运行 在设备上使用相同的命令时它有效 (react-native 运行-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 恢复到我知道有效的旧代码版本,但仍然失败,所以我认为我的机器和模拟器可能存在配置问题,但我'我不确定是什么。
知道是什么导致了这个问题吗?
感谢@Navneet Kumar,我发现几周前我曾尝试在模拟器上设置 Charles Proxy。我认为该设置仅限于那个模拟设备,但显然该设置在所有设备之间共享。 还原这些设置,一切正常 (https://medium.com/@daptronic/the-android-emulator-and-charles-proxy-a-love-story-595c23484e02)。
谢谢
我想到的唯一可能性是网络连接:
- 确保您的模拟器具有有效的网络连接。
- 我看到你的 wifi 有一个小十字,这是什么原因?
- 此外,请检查您的模拟器是否有任何代理设置或其他设置?
这是一个错误,您可以跟踪 this issue 以获取更多信息。他们在那里提到的解决此问题的唯一解决方案是在 avd 中创建另一个仿真器设备。
更新
另一种解决方案是 运行 android 工作室的应用程序(通过打开 android 工作室中的 android 文件夹)并 运行 查看错误!
我刚刚关闭了应用程序,从模拟器中卸载了它,然后运行 react-native run-android
现在就好了
- 只需转到命令提示符类型 Ipconfig。
- 打开 Android 模拟器的扩展控件->Settings-Proxy
- 检查并粘贴模拟器代理设置中的 IP 地址,并将端口号设为例如 8888
- 重新启动应用程序。 Check Image For Reference
根据
我读到有人通过清除 phone 缓存使其工作。最后我试了一下,它清除了phone缓存并清除了phone与App相关的数据。这有点有趣,因为我已经安装了一个新的虚拟设备,所以应该不会有缓存的情况,
In short by clearing app cache in emulator I was able to get back to working App
当我开始一个新项目并将组件从旧项目转移到其中时,我可以看到我的应用程序正在通过 console.log 运行,但留下一个空白屏幕。
最终我发现根组件 D'OH
需要 style={{flex: 1}}