1

我为Wikitude SDK框架创建的单点触控绑定在运行时不起作用。我按照以下说明创建了绑定:https ://stackoverflow.com/a/13070064/42826 。

当我尝试在运行时实例化我的包装类时,我得到以下异常:

包装器类型“Wikitude.WTArchitectView”缺少其本机 ObjectiveC 类“WTArchitectView”。

看起来本机类WTArchitectView在运行时没有被绑定程序集加载。本机库WikiitudeSDK.a确实位于具有ObjcBindingNativeLibrary构建操作的绑定程序集中。

这是我的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都是使用Objective Sharpie创建的。 注意:我只留下一个函数用于测试目的。

namespace Wikitude
{
    [BaseType (typeof (UIView))]
    interface WTArchitectView {

        [Export ("initializeWithKey:motionManager:")]
        void InitializeWithKey (string key, NSObject motionManager);
    }
}

这是Wikiitude SDK 头文件: http: //pastebin.com/HKBED11u

我的项目具有支持ARMv7 + ARMv7s的架构。

我是否必须以某种方式强制加载本机库,或者我只是错过了一些明显的东西来让包装器工作?

4

1 回答 1

2

LinkWith属性仅提及ArmV7Simulator作为LinkTargets。如果您的设备是Armv7s,这可以解释为什么它不起作用。

于 2013-05-11T09:19:33.990 回答