【问题标题】:Unity app crashes on iOS14 when transitioning to a specific scene过渡到特定场景时,Unity 应用程序在 iOS14 上崩溃
【发布时间】:2020-09-27 15:40:34
【问题描述】:

环境
统一:2019.3.15f1
Xcode:12.0
iOS 14

问题
我正在统一创建一个 3D 游戏应用程序。就在最近 iOS 14 发布时,我尝试在那里运行该应用程序并发现了一个问题,即在某些场景转换期间它会崩溃大约 20%。相同版本的应用在 iOS 13.7 或更早版本上没有崩溃。如何避免崩溃?

详细情况
该应用程序分为几个场景,但它只在某些场景中崩溃,而在其他场景中没有。此外,该特定场景也不会可靠地崩溃,这很奇怪,因为它只有大约 20%。它在 iOS 13.7 之前从未崩溃的事实也令人费解。 我删除了场景中几乎所有我要转换到的对象以识别问题,但它仍然崩溃。我还运行了过渡期间正在处理的各种代码的调试日志,以查看它何时崩溃,并发现它不是特定的代码崩溃,而是随机的。 当然在PC上可以正常使用,在安卓版上不会崩溃。

错误日志
我在 Xcode 上收到以下错误。

Thread 69: EXC_BAD_ACCESS (code=1, address=0x0)

曾经,我也遇到了以下错误。

Thread 2: "-[OS_xpc_uint64 UpdateQueueAdd:]: unrecognized selector sent to instance 0x8f796c08526c7e77"

我的尝试

  • 删除发生崩溃的场景中的所有对象
  • 删除 Firebase 相关对象/脚本
  • 更改 Unity 的版本 (2019.4.10f)
  • 重新安装 Xcode 12.0

这并没有解决问题。

【问题讨论】:

    标签: ios xcode unity3d ios14


    【解决方案1】:

    我也遇到了同样的错误。我发现如果我在场景中删除“VideoPlayer”,它就不会再崩溃了。

    如果您在场景中使用任何视频/音频,请移除场景中的“VideoPlayer”。

    【讨论】:

    • 谢谢。我确实删除了“VideoPlayer”并且崩溃问题消失了。但由于视频对我的场景至关重要,所以我在过渡前将其停用。然后我发现崩溃发生在我停用视频的那一刻。似乎在视频播放时使用名为“YoutubeVideoPlayer”的资产停用播放视频的对象可能会导致它崩溃。
    【解决方案2】:

    遇到同样的问题(Unity 2019.4.10)。这似乎与 VideoPlayer 相关联。 我发现将 VideoPlayer.audioOutputMode 设置为 Direct(之前有 AudioSource)为我修复了它(直到 Unity 提供适当的修复)。

    【讨论】:

      【解决方案3】:

      我发现了一个仅在 iOS 14 上出现的类似问题。如果您有一个也是部分类的 MonoBehaviour,它会在加载到附加了该类的场景时崩溃。

      在Xcode中发生这种情况时输出的错误是。

      sharedassets1.assets' is corrupted! Remove it and launch unity again!
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-17
        • 1970-01-01
        • 1970-01-01
        • 2023-03-19
        相关资源
        最近更新 更多