gpt4 book ai didi

ios - 使用 Xamarin 链接 ObjC 库的问题

转载 作者:行者123 更新时间:2023-11-29 10:34:13 24 4
gpt4 key购买 nike

过去几天我一直致力于绑定(bind)我的第一个 ObjC 库 ( SVGKit )。我已经完成了所有构建和编译工作,但在被另一个项目引用时我无法运行它。

我的绑定(bind)代码可以在这里找到:https://github.com/jamesmundy/SVGKit.Xamarin

运行时出现如下错误:

Could not create an native instance of the type 'SVGKitBindings.SVGKImageView': the native class hasn't been loaded. It is possible to ignore this condition by setting ObjCRuntime.Class.ThrowOnInitFailure to false.

我检查了我正在使用的静态库,它支持以下平台:

Architectures in the fat file: libSVGKit-iOS.1.2.0.a are: armv7 i386 x86_64 arm64

我相信这就是我所需要的。

我的链接器文件如下:

[assembly: LinkWith ("libSVGKit-iOS.1.2.0.a", LinkTarget.ArmV7 | LinkTarget.Simulator, SmartLink = true, ForceLoad = true)]

我是否必须以不同方式配置我正在使用此绑定(bind)的项目?非常感谢任何帮助加载 native 库的帮助。

更新 1: 多亏了一个建议,我尝试编辑链接器文件以支持与静态库相同的平台,不幸的是它没有解决问题。该文件现在如下所示:

[assembly: LinkWith ("libSVGKit-iOS.1.2.0.a", LinkTarget.ArmV7 | LinkTarget.Simulator | LinkTarget.Arm64 | LinkTarget.Simulator64, SmartLink = true, ForceLoad = true)]

我还在所有模拟器上尝试了代码,但不幸的是还是没有成功。

最佳答案

[assembly: LinkWith ("libSVGKit-iOS.1.2.0.a", LinkTarget.ArmV7 | LinkTarget.Simulator, SmartLink = true, ForceLoad = true)]

这可能不是您的(唯一)问题,但它是不正确的。您的 LinkTarget 应该与静态库支持的架构相匹配。 IOW 你缺少 Arm64Simulator64

同时尝试在不同的模拟器(32 位,如 iPhone 4S 和 64 位,如 iPhone 5S)或设备(同样是 32 位与 64 位)上执行您的应用程序。这将告诉您它是一般问题还是特定于体系结构的问题(并且您应该使用这些额外的信息来更新您的问题)。

关于ios - 使用 Xamarin 链接 ObjC 库的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27947923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com