【问题标题】:React Native app stuck on blank screen when running on device with remote debuggingReact Native 应用程序在远程调试的设备上运行时卡在空白屏幕上
【发布时间】:2017-06-12 11:41:53
【问题描述】:

我在我的设备 (iPhone 6) 上运行我的 react 本机应用程序,它可以正常加载。但是当我启用远程调试时,它似乎可以很好地连接到调试器但卡在空白屏幕上。

关闭远程调试后,一切正常。

我正在使用 react-native 0.40.0。

请帮忙!

【问题讨论】:

  • 你使用 Chrome 作为调试器吗?当我使用“React Native Debugger”应用程序时发生这种情况,我必须重新启动调试器才能再次工作。
  • 我有同样的“白屏问题”,但使用了 Nuclide 调试器,也许与这个问题有一些联系,但我不确定。欲了解更多信息,请参阅separate question

标签: react-native


【解决方案1】:

我通过以下操作克服了这种影响:

  1. 转到终端并按“a”重新打开 Android 设备或模拟器
  2. 关闭移动设备上的应用程序并再次打开它
  3. 如有必要,重启 R 以重启打包程序并清除终端中的缓存

【讨论】:

  • 我在通过 USB 连接的 Android 设备上进行了尝试。如果不杀死 Expo,我什至无法退出应用程序。
【解决方案2】:

可能有很多原因,就我而言,是缓存造成了问题。 建议的解决方案:-

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

这些步骤将解决问题!

【讨论】:

    【解决方案3】:

    从 iOS 原生模块启动 react 原生模块时,我遇到了同样的问题。

    使用 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)
    }
    

    解决问题!!

    【讨论】:

      猜你喜欢
      • 2018-07-16
      • 2014-10-13
      • 1970-01-01
      • 2021-10-05
      • 2017-07-13
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多