【问题标题】:Unity 5.2 ios IL2CPP build gives null reference exceptionUnity 5.2 ios IL2CPP 构建给出空引用异常
【发布时间】:2015-10-13 17:12:08
【问题描述】:

我正在使用 Unity 5.2 和 Xcode 7,当我选择 IL2CPP 作为脚本后端、Universal 用于架构并在 Xcode 上运行时:我在运行时多次收到此错误:

(Filename: currently not available on il2cpp Line: -1)
NullReferenceException: A null value was found where an object instance was required.
at BaseMenuControl.baseUpdate () [0x00000] in <filename unknown>:0 
at MainMenu.Update () [0x00000] in <filename unknown>:0 

其中MainMenu继承BaseMenuControl,BaseMenuControl继承MonoBehaviour,除此之外,没有什么特别的。

有人帮助/指导我吗?

【问题讨论】:

    标签: ios unity3d xcode7 unity5 il2cpp


    【解决方案1】:

    播放器中而不是编辑器中的某些内容可能为空的原因有很多。我首先建议在 Mono 脚本后端尝试这个。

    如果它在这种情况下有效,那么 IL2CPP 脚本后端可能会剥离您需要的东西。您可以按照此处的说明手动保存内容:

    http://docs.unity3d.com/Manual/iphone-playerSizeOptimization.html

    如果 Mono 脚本后端出现同样的问题,那么可能值得调试在设备上运行的脚本代码,看看那里发生了什么。如此处所述,使用 MonoDevelop 可以做到这一点:

    http://docs.unity3d.com/Manual/MonoDevelop.html

    【讨论】:

    • 据我所知 Mono 脚本后端不支持 arm64 和 armv7,我错了吗?
    • 尽管它在我不知情的情况下支持,但它给出了几个我无法处理的“架构 arm64 的未定义符号”错误(当我尝试搜索这些错误时,建议我使用 IL2CPP 脚本后端) .我需要 armv7 和 arm64 支持,以便 Apple 接受我的项目到 AppStore。
    • Mono 脚本后端仅支持 armv7(32 位)不支持 arm64。您需要使用支持 armv7 和 arm64 的 IL2CPP 脚本后端。
    • 是的,我的意思是我在 Mono 脚本后端没有任何问题,但这毫无意义,对于 IL2CPP,我遇到了上面解释的问题。它仍然无法溶解。
    • 啊,好的。因此,首先我会尝试禁用您拥有的任何程序集的剥离,如我提到的第一个链接所示。如果禁用剥离不能解决问题,那么这可能是 IL2CPP 中的错误。在这种情况下,请提交错误报告,并尝试进行更正。
    猜你喜欢
    • 1970-01-01
    • 2021-06-04
    • 2023-03-13
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 2020-05-09
    相关资源
    最近更新 更多