2016-06-08 119 views
0

开发Xamarin Forms应用程序。XAMARIN Forms创建绑定DLL

为了在Xamarin Forms应用程序中使用一些原生的iOS控件,试图使用客观的sharpie绑定目标c文件(.h和.a文件),创建了原生.h和.a文件的dll。

在iOS解决方案中创建dll之后,我将它添加到引用中,并创建了一个渲染器类来使用它。

问题是我无法为任何类创建实例。构建成功,但在运行应用程序时,它停止并显示如下错误。

无法创建类型的原生性实例‘StackViewBinding.StackViewDataProvider’:本机类尚未加载 有可能通过ObjCRuntime.Class.ThrowOnInitFailure设置为false忽略这个条件。”

请任何人建议来解决这个问题。

感谢, 普拉巴卡兰

+0

你正在设备或模拟器上调试吗? – kyurkchyan

回答

0

这可能会发生,因为本机库(.a)中不包含运行所需的所有架构,例如,如果你在模拟器中运行,但你的库(.a)中只包含设备位(armv7,arm64),它不能在模拟器上工作。在设备中运行时,同样适用,但本机库仅包含仿真器位(i386,X86_64)。

您需要使用lipo命令和Xcode项目生成的库来创建一个胖库。我有一个关于如何做到这一点的非常详细的帖子,你可以找到它here

希望这有助于!

+0

是的......这是使用设备,但不是在模拟器上。现在我遇到的问题与HealthKitUI框架如下, “您的应用程序使用HealthKitUI框架和您的设备没有兼容的SDK版本9.3” 但是,我没有在我的应用程序中使用任何HealthKitUI。 –