0

我有一个 Unity 5.3.1 iOS 项目,它也使用新的多人游戏网络 UNet。可怕的东西。当我构建并运行项目时,我在 Xcode 中收到以下错误:

Use of undeclared identifier `IL2CPP_RAISE_MANAGED_EXCEPTION`

该项目在 Unity 编辑器中运行良好。它位于一个巨大的 Bulk_Generics_10.cpp 脚本中,用于处理System.Comparison1<UnityEngine.Networking.NetworkSystem.PeerInfoPlayer

这是发现错误的代码块。

 // System.Void
 System.Linq.Enumerable/<CreateDistinctIterator>c__Iterator3`1<System.Object>::Reset()
 extern TypeInfo*
 NotSupportedException_t1382227673_0_il2cpp_TypeInfo_var; extern const
 uint32_t
 U3CCreateDistinctIteratorU3Ec__Iterator3_1_Reset_m_1278777949_0_MetadataUsageId;
 extern "C"  void
 U3CCreateDistinctIteratorU3Ec__Iterator3_1_Reset_m_1278777949_0_gshared
 (U3CCreateDistinctIteratorU3Ec__Iterator3_1_t1454147488_0 * __this,
 const MethodInfo* method) {    static bool s_Il2CppMethodIntialized;   if
 (!s_Il2CppMethodIntialized)    {       il2cpp_codegen_initialize_method
 (U3CCreateDistinctIteratorU3Ec__Iterator3_1_Reset_m_1278777949_0_MetadataUsageId);
        s_Il2CppMethodIntialized = true;    }   {
        NotSupportedException_t1382227673_0 * L_0 =
 (NotSupportedException_t1382227673_0 *)il2cpp_codegen_object_new
 (NotSupportedException_t1382227673_0_il2cpp_TypeInfo_var);
        NotSupportedException__ctor_m149930845_0(L_0, /*hidden
 argument*/NULL);       IL2CPP_RAISE_MANAGED_EXCEPTION(L_0);    } }

看起来 Unity 并没有将其完全交给 Xcode。我想知道是否需要在 Unity 中进行一些调整。

我该如何纠正这个错误?

4

2 回答 2

0

这是一个新问题,不同平台的构建包在安装程序中是可选的。如果您安装一个平台,然后升级您的 Unity 版本,但在第二次安装时未安装该平台,则旧版本的平台将保留并导致问题。

我的解决方案是彻底清除我的 Unity3d 文件夹并使用正确的平台重新安装。

相关线程:http: //forum.unity3d.com/threads/il2cpp_raise_managed_exception-undeclared-identifier.382377/

于 2016-01-28T23:36:42.527 回答
0

据我记得System.LinqiOS支持。

这是一个关于此的线程,

来自 Linq for Collections 的大多数 Linq 扩展方法都不适用于 iOS 上的 IEnumerables,因为它们需要不受支持的 AOT 运行时编译器。

然而,Asset Store 上有一个Linq for iOS库,它类似于 Linq,但不需要运行时编译器。所以你可以在 iOS 上使用它。

来源:http: //forum.unity3d.com/threads/linq-on-ios.84147/

于 2016-01-29T08:05:57.470 回答