问题标签 [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 投票
2 回答
734 浏览

android - 为了使用 AWS Gamelift API,有没有办法防止在 Unity 中对 IL2CPP 编译器进行程序集剥离?

显然,AWS Gamelift API 使用反射或某种机制导致 Unity 编译器过度积极地剥离所需的程序集。因此,您只能使用允许关闭剥离的 Mono 编译器。IL2CPP 没有类似的选项。对于 IL2CPP,您可以通过 link.xml 文件 (\Assets\link.xml) 中的条目来控制剥离。到目前为止,我还没有成功使用 link.xml 方法。

在 link.xml 中使用下面的条目后,可以防止一些异常,但此异常仍然存在。

2020-03-16 12:12:14.622 13883-13898/com.company.app E/Unity: NotSupportedException: System.Configuration.ConfigurationManager::get_AppSettings at System.Configuration.ConfigurationManager.get_AppSettings () [0x00000] in <0000000000000000000000000000000> :0 在 Amazon.AWSConfigs.GetConfig (System.String 名称) [0x00000] 在 <000000000000000000000000000000000>:0 在 Amazon.AWSConfigs..cctor () [0x00000] 在 <000000000000000000000000000000000>:0 在 Amazon. () [0x00000] in <0000000000000000000000000000000000>:0 在 Amazon.GameLift.AmazonGameLiftConfig..ctor () [0x00000] 在 <000000000000000000000000000000000>:0 在 Amazon.GameLift.AmazonGameLiftKeyIdClient..ctor , Amazon.RegionEndpoint 区域)[0x00000] in <0000000000000000000000000000000000>:0 在 GameLiftClient.GetConnectionInfo (System.String& ip, System.Int32& 端口, System.String& playerSessionId) [0x00000] 在 <0000000000000000000000000000000000000000000000>:0 在 System.ip, System.&Int32. 端口细绳

链接.xml

无论如何,使用 link.xml 或其他机制来禁用 Unity 中的程序集剥离,以便可以使用 IL2CPP 编译器?

0 投票
1 回答
611 浏览

ios - 架构 armv7 的未定义符号:“query_call_back(callback_func_type)”

最近将我的项目从Unity 5.6.4 升级到 2018.4.19f1后,我在构建 iOS 项目时遇到了问题。一切都可以在我的设备上导出、构建和运行,但是如果我存档导出的项目,则会出现错误:

架构 armv7 的未定义符号:“query_call_back(callback_func_type)”,引用自:il2cpp::vm::MetadataCache::Initialize() in libil2cpp.a(External_il2cpp_il2cpp_libil2cpp_vm_6.o) il2cpp::vm::MetadataCache::Initialize() in libil2cpp.a(External_il2cpp_il2cpp_libil2cpp_vm_6.o) ld:未找到架构 armv7 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

环境:

  • 统一2018.4.19f1
  • Xcode 10.1 (10B61)

感谢是否有人可以提供帮助!

解决方案:数小时后再次将 unity 升级到 2019.3.4f1 并修复镜像错误。最后,Xcode 归档项目成功!

0 投票
0 回答
2587 浏览

unity3d - 使用较低的 android 版本升级到 unity 2019.3.7f 后应用程序崩溃

我在统一 2019.2.5f 中创建了我的应用程序,我的 .aab 版本在我的三星 SM-J710GN 和更低的 android 版本上工作。2019.2.5f唯一的问题是它有一个S-pen不工作的bug。于是我升级到了2019.3.7f。现在的问题是,当我在三星 SM-J710GN 上测试我的应用程序时,它崩溃了。我检查了 logcat 并找到了一行il2cpp/patch.config' is missing。我不知道这是否是错误,但同一行出现在我的 samsung_SM-A530F 中并且运行完美。

这是 logcat 日志。

0 投票
1 回答
285 浏览

c++ - 无法使用 Nuget 安装软件包

我无法使用 nuget(VS 解决方案在 C++ 中)在 Visual stuio 中将任何包安装到我的 Unity UWP 项目输出中。我收到“无法安装包 'xxxxx'。您正在尝试将此包安装到以 'native,Version=v0.0' 为目标的项目中,但该包不包含任何与该包兼容的程序集引用或内容文件框架。”

我安装了统一版本 2019 和 Visual Studio 2019。

0 投票
0 回答
851 浏览

android - Unity 2019.3:“Android 手机崩溃”

我已经构建了 AAB(用于 ARM 和 ARM-64),然后在我的 Android 智能手机上进行了测试,但我发现它崩溃了。

通过检查日志,我发现以下错误(使用 HTC U11,API 级别 26):

我在 Unity 论坛上读到它是由图形问题引起的,因此需要禁用 OpenGL es 3。我已经对其进行了测试,但仍然失败。

注意,我使用的是下面的插件(都是最新的):

  • 统一内购

  • 谷歌广告

  • 火力基地

另外,我正在使用 Unity 2019.3.12f1(几乎是最新的)

任何想法?

0 投票
2 回答
1856 浏览

c# - 构建到 UWP 和 Il2CPP 后,通用方法中的 AOT(提前)问题

我有一个通用的方法来尝试使用我自己的TryGetValue喜欢通过键从字典中获取通用值(当然裁剪了很多基本的)

这在 Unity 编辑器中有效,但是一旦我尝试使用例如运行该方法,它就会构建到 UWP 和 IL2CPP

它抛出一个

这可能是什么原因,我该如何解决?

0 投票
1 回答
585 浏览

c# - Google.Protobuf.Reflection 不适用于 Unity 中的 il2cpp 脚本

我正在使用 amazon gamelift 在 unity3d 中创建一个 android 游戏。
我正在使用实时服务器客户端 sdk。当我运行该应用程序时,它会在我的 gamelift 车队中创建一个游戏会话,但在我使用 IL2CPP 服务器脚本时无法发送消息。
当我使用 Mono 时它工作正常,但在切换到 IL2CPP 后我面临许多修复,我找到了许多错误的解决方案,但无法找到这个特定错误的解决方案。似乎 Google.Protbuff.Reflection 不适用于 IL2CPP.Error 显示它无法找到方法 ClearMessage,即使它在那里。
谁能帮帮我吗..

0 投票
1 回答
757 浏览

visual-studio - 无法将本机 C++ 调试器附加到已在 HoloLens2 上运行的 Unity 应用程序

我有一个 IL2CPP Unity 应用程序,它使用为 HoloLens 2 构建的定制本机 DLL。

使用 Visual Studio 2019 和 Unity 插件工具通过Debug -> Attach Unity Debugger 调试正在运行的应用程序的托管 C# 代码就可以正常工作。它会自动检测在 HL2 上运行的应用程序,我可以连接到它。

我还可以通过将其源项目添加到生成的 IL2CPP 解决方案来调试我的本机库 C++ 代码。当我按下“播放”按钮时,VS 构建 UWP 应用程序并将其部署到 HL2 并自动附加调试器,这使我也可以调试在设备上运行的自定义本机代码,到目前为止这非常棒。

但是,当它在 HL2 上手动启动时,如何将 VS 本机调试器附加到应用程序?问题是,使用“播放”按钮,它总是将整个应用程序重新部署到 HL2,即使没有进行代码更改 - 这个过程总是需要很长时间,这真的很烦人。

我想,它可以通过Debug -> Attach to Process工作,但我无法连接到 HL2,既没有使用它的网络名称也没有使用 HL2 的 IP 地址作为Connection Target。USB 电缆也已连接。每次尝试都失败并显示以下错误消息:

“无法连接到名为‘192.168.1.21’的 Microsoft Visual Studio 远程调试器。Visual Studio 2019 远程调试器 (MSVSMON.EXE) 似乎没有在远程计算机上运行。这可能是因为防火墙阻止了与远程计算机。有关配置远程调试的帮助,请参阅帮助。

尝试将本机调试器附加到 IP 时出现错误消息

通过“播放”按钮将应用程序部署到 HL2 时,我识别出调试输出中提到的端口号 55142:

调试输出中显示的调试器侦听端口

所以我尝试将调试器直接附加到这个端口,但这样做会导致不同的错误消息:

“无法连接到名为‘192.168.1.21:55142’的 Microsoft Visual Studio 远程调试器。连接请求被远程调试器拒绝。确保远程调试器在‘Windows 身份验证’模式下运行。”

尝试将本机调试器附加到 IP:Port 时出现错误消息

有任何想法吗?

0 投票
2 回答
716 浏览

c# - 在 HoloLens 1 上,使用默认构造函数创建 TcpClient 对象时会抛出“ArgumentException:值不在预期范围内”

我有一个应用程序运行良好,直到大约 2 天前,HoloLens 1 通过 TCP 连接到本地网络上的另一台 PC。

最近,每次调用 TcpClient() 默认构造函数都会抛出上述错误。没有值被传递给它(因为它是默认值),因此我不知道它错误的值是什么。

我尝试了以下解决方案,由 HoloLens slack 上的某个人链接到我:https ://github.com/Azure/azure-remote-rendering/issues/6

该解决方案需要更新到 Unity 2019.3.15f。我尝试了多种不同的 Visual Studio、Windows SDK 和 Unity 配置。

我发现了多个其他帖子,这些帖子似乎表明罪魁祸首是 il2cpp。这是相关输出的副本。

到目前为止,我产生的这个错误的最小发生率如下:

新的 Unity 项目(似乎与哪个版本无关)

将 GameObject 添加到场景中,附加:

按照为 HoloLens 1 指定的方式配置 Unity 构建设置,确保在发布设置 > 功能中包括 InternetClient、InternetClientServer、PrivateNetworkClientServer。

在安装了适当的构建工具的 Visual Studio 2017 或 2019 中构建并打开生成的解决方案。部署到 HoloLens,产生的错误将输出到调试控制台。

感谢您的阅读,我非常感谢任何人的任何见解。

0 投票
1 回答
112 浏览

c# - C#无法从导入的库中反序列化类的对象

在 Unity 项目中,我有一些用于 WebSocket 交互的 WsMessage 类。这个类位于我自己的库 WebSocketModels 中。

由于某种原因,它不能被反序列化。我没有看到任何错误。如果我将此类从库直接移动到正常创建的 WsMessage 的 Unity 项目对象。我使用这个简单的命令来获取 WsMessage 的对象:

将我的 Unity 播放器脚本后端更改为 IL2CPP 后,我遇到了这个问题。在 Mono 上一切正常。

JSON 内容示例