React Native应用在使用远程调试时在设备上运行时卡在空白屏幕上

10

我在我的设备(iPhone 6)上运行React Native应用程序,它可以正常加载。但是当我启用远程调试时,似乎成功连接到调试器,但却停留在一个空白屏幕上。

只要我关闭远程调试,一切都能正常加载。

我的React Native版本是0.40.0。

请求帮助!


你使用Chrome作为调试器吗?当我使用应用程序“React Native Debugger”时,会发生这种情况,我必须重新启动调试器才能使其再次工作。 - Haitao Li
我也遇到了“白屏问题”,但是是在使用Nuclide调试器时出现的,可能与这个问题有关,但我不确定。更多信息请参见单独的问题 - Stich
3个回答

2

可能有很多原因,但在我的情况下,是缓存导致了问题。

建议解决方案:

  1. 清理gradlew - 转到android文件夹并在其中打开cmd,运行“gradlew clean”命令清理gradle
  2. 清理gradle后,重新构建您的应用程序并运行相应的命令(如run-android)
  3. 如果重建后问题仍然存在,请执行步骤4和5
  4. 进入应用程序设置并清除应用程序数据
  5. 现在清除react-native终端的缓存(react-native start --reset-cache

这些步骤将解决问题!


0
我通过以下方式克服了这个问题:
  1. 进入终端并按下 "a" 重新打开 Android 设备或模拟器
  2. 在移动设备上关闭应用程序,然后再次打开它
  3. 如果必要,在终端中重新启动 R 以重新启动打包程序并清除缓存

我尝试了使用USB连接我的Android设备。甚至在不关闭Expo的情况下,我都无法退出应用程序。 - Lawrence I. Siden

0

当我从iOS本地模块启动React Native模块时,我遇到了同样的问题。

使用BUNDLE URL替换下面提到的代码

    if let bundleUrl = (UIApplication.shared.delegate as? AppDelegate)?.bridge?.bundleURL {
    let mockData:NSDictionary = ["names":
        [
            ["name":"Name 1",],
            ["name":"Name 2"]
        ]
    ]
    
    let rootView = RCTRootView(bundleURL: bundleUrl, moduleName: "modulename", initialProperties: mockData as [NSObject : AnyObject], launchOptions: nil)
    
    let vc = UIViewController()
    vc.view = rootView
    self.present(vc, animated: true, completion: nil)

使用BRIDGE更新的代码

    if let bridge = (UIApplication.shared.delegate as? AppDelegate)?.bridge {
    let mockData:NSDictionary = ["names":
        [
            ["name":"Name 1",],
            ["name":"Name 2"]
        ]
    ]
    
    let rootView = RCTRootView(bridge: bridge, moduleName: "modulename", initialProperties: mockData as [NSObject : AnyObject])
    
    let vc = UIViewController()
    vc.view = rootView
    self.present(vc, animated: true, completion: nil)
}

解决问题!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接