JS 错误导致 JUCE 应用程序崩溃

Posted

技术标签:

【中文标题】JS 错误导致 JUCE 应用程序崩溃【英文标题】:JS errors crash JUCE app 【发布时间】:2016-01-30 03:42:11 【问题描述】:

开发基于 JUCE 的 React Native 应用程序,使用 ios 设备进行测试,每当我的代码中出现 JS 错误时,应用程序就会崩溃,我必须从 Xcode 重新启动。 Reload 按钮不起作用。

应用程序的核心是一个 JUCE 应用程序。在调试模式下,我得到以下 JS 错误异常:

exception 'NSInvalidArgumentException', reason: '-[JuceAppStartupDelegate window]: unrecognized selector sent to instance 

我了解这是因为 JuceAppStartupDelegate 没有 window 属性。我不知道如何实现一个 JUCEApplication 实例来响应 React Native 的调用。

【问题讨论】:

您遇到了什么错误? 可能是任何 JS 错误 - 用一个例子更新了问题。 【参考方案1】:

所以我想出了一个解决方案。

导致崩溃的 React Native 代码位于 dismiss 方法中:

- (void)dismiss

  self.hidden = YES;
  [self resignFirstResponder];
  [RCTSharedApplication().delegate.window makeKeyWindow]; // <-- crash here

我尝试简单地将有问题的行注释掉。它有效——我现在可以在我的 React Native 代码中出现 JS 错误后使用 Reload 按钮。

- (void)dismiss

  self.hidden = YES;
  [self resignFirstResponder];
  //[RCTSharedApplication().delegate.window makeKeyWindow];

编辑(2017 年 1 月)

JUCE 已经在 iOS 上更新了 window 属性,从而解决了这个错误。

【讨论】:

以上是关于JS 错误导致 JUCE 应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

VST 主机 - 泄漏的对象 - Juce/C++

局部变量的赋值导致音频在 JUCE 中停止处理

Node.js 警报导致崩溃

如何解决sprintf参数类型错误导致程序崩溃

SQLite 查询错误,onItemClick 导致应用崩溃

核心数据 VS 验证错误对象,导致崩溃