我为SDK框架创建的单调绑定在运行时不起作用。我按照以下说明创建了绑定:https://stackoverflow.com/a/13070064/42826。
当我试图在运行时实例化包装类时,我会得到以下异常:
包装类型'Wikitude.WTArchitectView‘缺少它的原生ObjectiveC类'WTArchitectView’。
看起来,本机类WTArchitectView在运行时不会被绑定程序集加载。本机库ObjcBindingNativeLibrary WikitudeSDK.a确实位于具有构建操作的绑定程序集中。
下面是我的LinkWith声明(请注意Wikitude本机库中的-ObjC,即必填项 ):
[assembly: LinkWith ("WikitudeSDK.a", LinkTarget.ArmV7 | LinkTarget.Simulator, Frameworks = "CoreVideo Security SystemConfiguration CoreMedia AVFoundation CFNetwork CoreLocation CoreMotion MediaPlayer OpenGLES QuartzCore CoreGraphics", ForceLoad = true, LinkerFlags = "-ObjC", IsCxx = true)]我的大部分ApiDefinition.cs都是使用http://docs.xamarin.com/guides/ios/advanced_topics/binding_objective-c_libraries/objective_sharpie创建的。注意:我只为测试目的留下了一个函数。
namespace Wikitude
{
[BaseType (typeof (UIView))]
interface WTArchitectView {
[Export ("initializeWithKey:motionManager:")]
void InitializeWithKey (string key, NSObject motionManager);
}
}下面是Wikitude SDK头文件:http://pastebin.com/HKBED11u
我的项目有ARMv7 + ARMv7s支持的体系结构。
我是否必须以某种方式强制加载本机库,还是简单地遗漏了一些显而易见的东西来使包装器正常工作?
发布于 2013-05-11 09:19:33
LinkWith属性只将ArmV7和Simulator作为LinkTarget,如果您的设备是Armv7s,这可以解释为什么它不能工作。
https://stackoverflow.com/questions/16493149
复制相似问题