问题标签 [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 回答
360 浏览

unity3d - 如何防止我的 Unity 包中的预构建程序集被剥离?

我有一个包含预构建程序集的 Unity 包。

此程序集不了解 Unity,并且包含一些用于反序列化的模型。我遇到了一个问题,il2cpp 正在剥离这些模型的构造函数,因为它们只能通过反射调用。

我似乎无法在我的包中提供 link.xml,并且由于程序集不了解 Unity,因此我无法使用该[Preserve]属性。

我有什么办法可以确保 il2cpp 保持这些构造函数完好无损,而无需在用户安装我的包后手动执行步骤?

0 投票
0 回答
342 浏览

android - 使用 Unity 创建 64 位 apk 时 Vuforia 黑屏

根据 Google Play 施加的仅可接受 64 位 apk 的限制,我尝试在 Unity 中使用ARM64 IL2CPP设置为 android apk 构建我的项目。

Apk 构建良好,但是当我运行应用程序时,我看不到 vuforia 的摄像头。

虽然我的应用程序在 32 apk 上运行良好,而且我什至在 Play 商店中有我的 32 位 apk。

我尝试使用不同版本的 Unity,例如 2018.1、2018.2、2018.4,但都有相同的问题。

0 投票
3 回答
14554 浏览

android - Unity Build - 异常:il2cpp.exe 没有正常运行

将 Unity 2017.4.34f1 (LTS)IL2CPPNDK r13b一起使用,我尝试将我的 Unity 项目导出到 Android 项目(构建过程)。

注意:我使用 IL2CPP 因为 Google PlayStore 需要 32 位和 64 位,所以我不能再使用Mono作为脚本后端

但是,它失败了,我收到以下错误:

还有一个错误日志:

到目前为止我做了什么:

1)尝试使用NDK r16b,但失败了,因为 Unity 2017.4 只想要NDK r13b

2)以管理员身份运行Unity,还是没有解决

==更新日志(Unity 2017.4.39):

===更新(Unity 2017.4.8f1)

已尝试使用Unity 2017.4.8f1(我成功构建 APK 的原始版本)但仍然无法Android Studio Project使用 x64(IL2CPP)导出到,我计划使用导出的 Android Native/Android Studio 构建 AppBundle x64。

如果使用内部(32 位)它是成功的,但谷歌现在需要x64 APK/AppBundle构建。如果我以前知道这一点,我会IL2CPP从一开始就使用(不是内部),解决这个错误真是太令人沮丧了。如果我正在迁移到Unity 2019现在,那么需要付出太多的努力......

0 投票
0 回答
665 浏览

unity3d - 如何修复 Hololens App 中的 WinRT 发起错误和全息空间灾难性故障异常?

我最近开始在我的 Hololens 应用程序中定期收到以下错误,大约每分钟左右一次,而没有更改我的任何核心应用程序功能(主要是 UI 和错误修复更改):

此错误会导致 Hololens 2 每次发生时冻结约 10-15 秒。我还没有找到一种模式,无论它与某个用户事件或我的环境中发生的事情有关。

我的问题是,如果你们中的任何人以前见过这个并且知道解决方法,或者是否有人可以指出我正确的方向?还是我的设备坏了?任何帮助将不胜感激!

这是我的技术栈:

  • Unity3D 2019.2.12f1
  • MRTK 2.0.0
  • Hololens 2 8362.1234.arm64fre.19h1_release_svc_sydney.191108-1600
  • 使用 ARM 构建的应用程序

最好的祝愿

0 投票
1 回答
1465 浏览

c++ - 在 IL2CPP 中包含 C/C++ 源文件作为插件

我一直在尝试用 C 语言编写简单的函数,并使用 IL2CPP 将它们直接包含在我的插件目录中,而无需构建 DLL,因为我发现它更简单,而且 P/Invoke 成本更低,而且可能不需要每个都重新启动 Unity是时候做出改变了。

但是,当我以带有独立目标的 IL2CPP 脚本后端为目标时,我总是在播放模式下的编辑器中出现此错误: EntryPointNotFoundException 当我构建时,我得到/il2cpp.exe did not run properly!

我有带有 C++ 工作负载和 Windows 10 SDK 的 VS2019。

任何人都知道如何在 Unity 中使用本机源文件和 IL2CPP?

示例代码:

C#

编辑:我得到的错误:

错误 2

0 投票
1 回答
233 浏览

visual-studio - 在 Unity Il2Cpp 构建解决方案中添加编译符号

以前我曾经在这个位置添加我的编译符号 - 项目 > 属性 > 构建 > 条件编译符号。 .Net 构建编译符号

但是现在使用 IL2Cpp 构建解决方案后,我找不到添加编译符号的位置。虽然我试图在这个位置添加它:IL2Cpp 构建编译符号 ,甚至在:IL2Cpp 构建编译符号这个位置

但它仍然没有按预期工作,我在该编译符号下关闭的代码没有执行。

0 投票
1 回答
666 浏览

android - Unity 2018.3,升级到 Catalina 后,在 Android (ndk n16b) 上进行 il2cpp 编译期间链接器崩溃

升级到 macOS Catalina 后,我的 Unity 2018.3 无法使用 il2cpp 为 Android 编译。

该错误似乎发生在链接过程中。

这是输出:

看起来在 NDK 中没有ld-bfddarwin-x86_64 的链接器 :(

您对如何解决有任何想法吗?

0 投票
1 回答
505 浏览

unity3d - IL2CPP compiled UWP app using Windows System DLLs on ARM

I am trying to use the iphlpapi.dll within a Unity3d UWP App on the Hololens 2. When I create a standalone UWP C# App and run it on the HL, it works fine and I can use the dll.

When I compile the Unity3d project, it doesn't work. The dll is loaded automatically on App start by the Hololens from

C:\Windows\SysArm\

but the DLLImport I've used successfully in the standalone UWP App doesn't work.

Apologies for the lack of code, I'm no longer in the office but the example I've used is from here:

C# - Get mac address in Universal Apps

Any pointers would be very helpful!

Many thanks, Peter

EDIT:

@Hernando

The problem occurs in runtime on the HL device once the IL2CPP has built. The version of Unity is 2018.4.12f1. The error occurs as the code attempts to use the DLLImport:

[DllImport("iphlpapi.dll", CharSet = CharSet.Ansi, ExactSpelling = true)] private static extern int GetAdaptersInfo(IntPtr pAdapterInfo, ref Int64 pBufOutLen);

The exception is DLL not found but on the standalone UWP app with identical code, it works.

0 投票
1 回答
182 浏览

android - 在 Unity 上使用 il2cpp 构建不适用于 SharpKml 库

当我为 Android 构建单声道时,我的应用程序运行良好。但是当我使用 il2cpp 构建时,我的应用程序也可以正常工作,但是当我想创建 KML 文件时,我遇到了一个异常:“对象引用未设置为实例或对象”。当然是因为 root 必须为空。

我不明白为什么它适用于单声道但不适用于 il2cpp。il2cpp 在二进制应用程序中不包含Sharpkml?

0 投票
1 回答
1558 浏览

unity3d - 如何让 Fiddler 或 Charles 从 Unity 2018 IL2CPP 应用程序中捕获流量

我已经使用 Unity 5 和 Unity 2017 构建了应用程序,并且能够使用 Fiddler 或 Charles 成功捕获网络流量。但是,当我使用 IL2CPP 构建 Unity 2018 应用程序(其他应用程序是使用 .Net 构建的)时,该应用程序可以工作(成功发送网络流量),但该应用程序似乎以某种方式绕过了 Fiddler(或 Charles)代理。也就是说,Fiddler 和 Charles 无法显示来自 Unity 2018 IL2CPP 应用程序的网络流量,即使它可以显示来自 Unity 5 和 Unity 2017 应用程序的流量。

请注意,一切都适用于 Unity 5 和 Unity 2017,并且之前已设置 SSL 设置等。此外,我已使用 Fiddler“WinConfig”为 Unity 2018 应用程序启用循环。

我的问题是:我需要做什么才能让 Unity 2018 IL2CPP 应用程序在 Fiddler 或 Charles 中显示流量?

更新: 这是一些示例代码,显示 HttpClient 请求不通过代理,但其他(Unity)网络请求确实通过代理:

以下是 Unity 播放器设置: 这是 Unity 播放器设置