首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >统一工程只在基于IL2CPP的开发中起作用

统一工程只在基于IL2CPP的开发中起作用
EN

Stack Overflow用户
提问于 2021-05-13 07:28:24
回答 1查看 1.7K关注 0票数 3

我有一个移动应用程序项目,它在Android上构建得很流畅,没有任何错误。但是,当我试图将它构建到一个iOS设备时,我在Xcode中得到了这个错误:

代码语言:javascript
运行
复制
Unable to find internal function `UnityEngine.Jobs.TransformAccess::GetWorldToLocalMatrix`
Unity.Burst.BurstCompilerHelper:IsCompiledByBurst(Delegate)
Unity.Burst.BurstCompilerHelper:.cctor()
Unity.Burst.BurstCompiler:Compile(T, Boolean)
Unity.Entities.ComponentSystemGroup:.cctor()
Unity.Entities.InitializationSystemGroup:.ctor()
System.Reflection.MonoCMethod:InternalInvoke(Object, Object[])
System.Activator:CreateInstance(Type, Boolean)
Unity.Entities.TypeManager:ConstructSystem(Type)
Unity.Entities.World:CreateSystemInternal(Type)
Unity.Entities.World:GetOrCreateSystem()
Unity.Entities.DefaultWorldInitialization:AddSystemToRootLevelSystemGroupsInternal(World, IEnumerable`1, Int32)
Unity.Entities.DefaultWorldInitialization:Initialize(String, Boolean)
Unity.Entities.AutomaticWorldBootstrap:Initialize()

统一将项目构建成Xcode,Xcode似乎也将项目构建到设备上,但是当它在设备上运行时,它会抛出此错误并崩溃……我试着在互联网上查找不同的解决方案,我找到了一些链接,但到目前为止,这些都没有奏效:

https://forum.unity.com/threads/solved-unable-to-find-internal-function.777044/ https://forum.unity.com/threads/unable-to-find-internal-function-with-transport-library-on-ios.731471/

你知道什么可能会导致这个错误吗?顺便说一下,我使用的是Unity2020.2.1f1

如果我在“开发构建”(Development)的支持下构建该项目,则编辑更新在IL2CPP、Android和iOS上正常运行。但是,如果我取消了开发构建,它就会像以前一样崩溃,无论是在Android还是iOS IL2CPP构建上。真奇怪。这方面有什么可能的信息吗?在Android上建立同样的项目也很顺利.在我看来,这是一个代码剥离错误,我尝试了以下解决方案:

packages

  • Enabling/Disabling

  • 禁用条形引擎代码

  • 更新作业和突发

  • 突发编译

到目前为止,这些都不起作用。:(

我还在资产文件夹中添加了一个link.xml文件,如下所示

代码语言:javascript
运行
复制
    <linker>
  <assembly fullname="Unity.Collections" preserve="all" />
  <assembly fullname="Unity.Collections.Tests" preserve="all" />
  <assembly fullname="Unity.Burst.Tests" preserve="all" />
  <assembly fullname="Unity.Transforms" preserve="all" />
  <assembly fullname="Unity.Transforms.Hybrid" preserve="all" />
  <assembly fullname="Unity.Transforms.Tests" preserve="all" />
  <assembly fullname="Unity.Jobs" preserve="all" />
  <assembly fullname="Unity.Jobs.Tests" preserve="all" />
  <assembly fullname="Unity.Burst" preserve="all" />
  <assembly fullname="UnityEngine">
         <type fullname="UnityEngine.*" preserve="all"/>
         <type fullname="UnityEngine.Jobs.*" preserve="all"/>
         <type fullname="UnityEngine.Jobs.TransformAccess.*" preserve="all"/>
  </assembly>
</linker>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-26 17:17:35

经过近一周的挣扎和大量调试,我发现了这个问题。简而言之,崩溃是由Unity.Entities 0.17.0-preview.41包造成的。(参考文献https://docs.unity3d.com/Packages/com.unity.entities@0.17/manual/index.html)

即使在IL2CPP脚本上构建了一个空项目,后端+ Development也未被选中,并且安装了上述实体预览包,该应用程序也会崩溃,您可能会得到与我相同的错误。

我不知道这是否是代码剥离错误,但我发现了一件奇怪的事情,如果启用了实体预览包,那么它是脚本执行顺序中的第一个(您可以在Project中签入该顺序),这可能会导致缺少一个内部函数的问题。(由于实体包依赖于UnityEngine.Jobs.TransformAccess,但实体包首先执行,它还找不到乔布斯,这是我的逻辑,但如果我错了,请纠正我。)

我仍然不知道为什么我一开始就安装了这个包,因为我甚至没有在这个项目中使用它,所以删除它解决了我所有的问题,这个项目现在运行顺利。也许这会对将来有类似问题的人有所帮助。作为结论,我能说的是:

packages.

  • Don't预览
  1. 要小心使用Unity.Entities预览包,直到解决了这个问题。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67515444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档