问题标签 [il2cpp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
250 浏览

unity3d - Unity WebGL Build 在早于 2018.1.4 的版本中失败

我正在尝试在 Unity 中构建一个 WebGL 项目,在 Windows 10 上运行。我尝试了空白项目,并尝试了几个不同的版本。坦率地说,我没有尝试过所有早于 2018.1.4 的版本,但我尝试了几个 2018、2019 和 2020 版本,但都没有运气,2018.1.4 是我能够构建的最后一个版本WebGL 开启。

我还在各种论坛上尝试了几十个修复程序。删除了 il2cpp_cache,删除了 webGL_cache,将项目移到了根目录,我已经为此工作了几个月。不同版本的错误是一致的,无论是全新的项目,还是在 2018.1.4 上成功构建的项目的更新版本。下面的堆栈。

错误 1

错误 2

错误 3

0 投票
1 回答
493 浏览

c# - Firebase 6.16.1 指定的强制转换无效 Unity

我在 Unity 中使用 Firebase 时遇到了一些问题。我正在使用 Unity 2020.2.0b5.3233 和 Firebase 应用和数据库 6.16.1。我以前没有这个错误,但现在出现了!我离开了 REST API,因为它没有数据库更改检测功能!我究竟做错了什么?

所以,这是我的代码:

这是我的错误:

0 投票
1 回答
3103 浏览

android - Unity 在为 Android 构建时在运行时抛出 IL2CPP 构建错误?2018.4.5f1

我正在尝试构建一个项目以部署到 Play 商店,但在构建时遇到了可怕的 IL2CPP 错误。以下是错误,都与同一个文件 il2cppcore.dll 相关。任何帮助表示赞赏。

Unity 版本 2018.4.5f1

我有...

  • 选中 Build App Bundle (Play Store) 框

  • 添加了 NDK r16b 64 位路径。

  • 安装了 Android Studio 和 sdk 工具,Unity 可以识别它们并成功使用 mono for x32 构建

  • 通过 Android Studio 安装目标平台 API 22 并在播放器设置中进行设置。

  • 在播放器设置中选中 ARMv7 和 ARMv64,未选中 x86

  • 在设置中取消选中“Strip Engine Code”

  • 当我第一次下载它并将 Unity 指向它的位置时,我不得不选择允许 clang++ 和 NDK 中的其他几个程序通过 Mac > System Prefs > Privacy & Security 运行。

错误 2:

0 投票
1 回答
91 浏览

c# - 由于 IL2CPP,Unity 无法构建

我为 New 3DS 制作了 Unity 存档,尝试自己使用它,即使我安装了 IL2CPP,它似乎也会出现这些错误 设置:Unity - 5.6.5f1(New3DS 密钥)构建 - New3DS Ram - 8GB CPU - I5

错误:

1:

2:

3:

4:

5:

6:

其次是: Error building Player: 6 errors

请记住,我已经安装了 IL2CPP 并且将 New3DS 作为构建选项,我不知道该怎么做,我要添加一个屏幕截图以获得好的措施,请尝试帮助...

0 投票
2 回答
2603 浏览

android - Unity Android Build 在 Mono 中工作,但由于未定义的引用、缺少库而在 IL2CPP 中失败

我正在尝试更新我们在 Google Play 商店中已存在多年的基于 ARToolkit5 的 Unity Android 应用程序。ARToolkit5 不再受支持,但我们仍然依赖于大约 4 年前构建的库。我的 Unity 版本是 2020.1.11f1。

我需要将应用程序升级到 Google App Bundle 并添加 64 位支持。所以第一步,我理解,是从 Mono 改为 IL2CPP 作为 Scripting Backend。32 位 Android ARMv7 应用程序在 Mono 中构建并且运行良好,但是当我实际上只进行一项更改时,即在项目设置下切换到 IL2CPP 作为脚本后端时,构建失败。我什至还没有尝试添加 ARM64 选项。

使用 IL2CPP 时,构建失败并出现BuilderFailedException数百个Undefined References...

认为这说明的是链接器找不到列出的函数的定义,所有这些都来自一个 ARToolkit 库:libARWrapper.so

此库存在于 Unity 项目中:Assets/Plugins/Android/lib/armeabi-v7a/libARWrapper.so.

在 Unity Inspector 中快速检查显示库导入设置似乎是正确的。

Unity Inspector:libARWrapper.so 导入设置

这似乎表明这个库将包含在 Android ARMv7 版本中,就是这样。而且我知道该库可以在 ARMv7 设备上运行和运行,并且使用 Mono 构建,所以我认为它只是以某种方式被排除在 IL2CPP 构建之外。

因此,总而言之,Mono 在其构建中包含 libARWrapper.so 库,但是当我为完全相同的项目切换到 IL2CPP 时,该库不包含在内,因此无法链接。有谁知道为什么会这样?谢谢!

0 投票
0 回答
994 浏览

android - 难以重复信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR),故障地址 0x8

我在 Unity3D Android 游戏中遇到问题。很难重复崩溃。有时会在 1 小时后发生,有时会在不同情况下每次玩 2 小时,我找不到任何原因。

我尝试了不同版本的 Unity:

  • 2020.2.1f1
  • 2019.3.12f1

还有 Mono 和 il2cpp 编译器。

谁能给我至少一个提示如何找到原因?

使用 addr2line 工具检查地址如下:

0 投票
0 回答
429 浏览

c# - Unity:为 IL2CPP 构建与 Mono 有何不同?

我在理解使用脚本后端 IL2CPP 构建与在 Unity 中使用脚本后端 Mono 构建有何不同时遇到了一些麻烦。我试图在互联网上告知自己,但找不到我的问题的正确答案。我知道一切是如何运作的,但我只是想知道我是否必须处理一些特殊的事情才能让 IL2CPP 与我的游戏正常工作?

我想知道几件事:

  • 我是否必须更改我的代码或任何东西才能成功使用 IL2CPP,或者我可以切换到这个脚本后端并且一切都很好?我也可以来回切换吗?
  • 如果就这么简单,那么如果 IL2CPP 性能更高且更难反编译,为什么它不是标准的呢?
  • 我可能会在 Unity 中遇到 IL2CPP 的任何问题吗?
  • 除了目标平台限制和其他小限制(链接在这里: https ://docs.unity3d.com/Manual/ScriptingRestrictions.html )之外,IL2CPP 是否有任何限制

如果有人可以帮助我更好地理解这一点,我会很高兴。我希望你不要介意所有这些问题。

0 投票
1 回答
319 浏览

unity3d - Unity IL2CPP 构建错误`DirectoryNotFoundException`

这是我在这里的第一个问题,我对开发真的很陌生。所以我希望我能得到帮助来解决这个我几天都无法解决的问题。当我尝试为 IL2CPP 构建时出现以下错误:

DirectoryNotFoundException:找不到路径“C:\Users\Public\Documents\Wondershare\CreatorTemp\tmp517a91d3.tmp”的一部分。System.IO.FileStream..ctor(System.String 路径、System.IO.FileMode 模式、System.IO.FileAccess 访问、System.IO.FileShare 共享、System.Int32 bufferSize、System.Boolean 匿名、System.IO.FileOptions options) (at <9577ac7a62ef43179789031239ba8798>:0) (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int ,bool,System.IO.FileOptions) System.IO.Path.GetTempFileName () (at <9577ac7a62ef43179789031239ba8798>:0) UnityEditor.MonoAssemblyStripping.GenerateLinkXmlToPreserveDerivedTypes (System.String libraryFolder, UnityEditor.RuntimeClassRegistry usedClasses) (at <49f464d93>18057e:0

仅当使用 IL2CPP 构建时才会出现此错误,并且即使在新项目中也会持续存在。在我将“facebook sdk for unity”添加到我的项目、解决依赖关系并更改系统变量之后,它开始发生。所以这是我到目前为止所尝试的:

-删除了 facebook sdk 并更改了一些相关的依赖项。- 删除了我添加的系统变量(https://answers.unity.com/questions/616484/open-ssl-not-found.html)。- 从电脑中删除了与 Wondershare 相关的文件夹。- 清除了我的用户中的 .gradle 文件夹。-删除了我项目中的库和临时文件夹。-重新安装了android的构建工具(与unity一起安装)。

我不确定我是否超越了某些东西,任何帮助将不胜感激。

0 投票
1 回答
1339 浏览

c# - 我可以将 IL2CPP(C++ 中间语言)用于非 Unity 应用程序吗?

IL2CPP.exe是一个 Unity 实用程序,用于将 C# IL 代码转换为 C++。我的问题是:这个可执行文件可以在 Unity 游戏开发环境之外用作通用工具,将任何.NET 应用程序(不仅仅是游戏)转换为高性能的本机可执行文件吗?

虽然我确实知道一些C++,但能够用我熟悉和流利的语言(C#)编写各种程序肯定会很好......无论它们是音频/视频/音乐制作DAW还是操作系统级别的安全/取证工具或机器学习平台或任何其他资源密集型......并且知道它们将像直接用 C++ 编写的应用程序一样高效地运行。

0 投票
0 回答
266 浏览

android - IL2CPP:C++ 编译器配置“Release”使应用程序冻结

我在使用 IL2CPP 构建我的应用程序“VolarPro”时遇到了严重问题。

我的测试设置: Unity:2020.3.3f1 设备:Samsung Galaxy Tab S3 Tablet Android 版本:9

详细信息:我开发了一款针对安卓操作系统的模拟游戏。游戏逻辑在主线程上,模拟部分(ODE 求解器)在单独的线程上运行。

该应用程序现已准备就绪,应该会在 Google Play 商店中发布。由于 Google 的 64 位策略,我现在被迫使用 IL2CPP 而不是 Mono 来构建我的应用程序。

在我测试的所有设备上使用 Mono 构建时,应用程序运行良好。

使用 IL2CPP 构建应用程序有效(.apk + .obb 扩展文件,ARMv7+ARM64)。但是运行应用程序失败。

如果我将 C++ 编译器配置设置为“发布”,应用程序会启动,但会立即冻结/GUI 没有响应,但我可以听到背景声音播放。我现在可以弄清楚主线程在 Release 构建中冻结,而模拟线程继续正常运行。Logcat 显示的唯一错误是:

30958 30958 错误 Zygote isWhitelistProcess - 进程被列入白名单 30958 30958 错误 Zygote accessInfo : 1 30958 30958 错误 eering.VolarPro 未启动调试器,因为进程无法加载 jdwp 代理。

如果我将 C++ 编译器配置设置为“调试”,则应用程序启动并且 GUI 响应。到目前为止,一切都很好。但是,我发现执行速度非常慢,而且游戏物理行为与 Mono 构建非常奇怪。Logcat 不显示错误。

对于可能导致问题的原因或如何调试此问题,我真的很感激:

  • 在仅在 IL2CPP 上显示的单独线程上进行模拟是否有任何陷阱?
  • 会不会是我使用了与 IL2CPP 不兼容的 .NET 方法?
  • 有哪些机制会导致发布版本冻结但调试版本不会冻结?
  • 为什么使用 IL2CPP 和 Mono 的游戏物理感觉不同?
  • 关于我应该尝试的构建设置的任何建议?(增量GC、代码剥离等)
  • 有什么解决方法吗?例如,在 Android Studio 中进行最终构建?

所以我陷入了深深的绝望和迷茫之中。任何有关如何让我的应用程序运行的帮助将不胜感激!

谢谢你。