【问题标题】:Can't load wikitude monotouch binding无法加载维基单触绑定
【发布时间】:2013-05-11 02:24:48
【问题描述】:

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

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

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

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

这是我的 LinkWith 声明(请注意 Wikitude 原生库的 -ObjCrequired):

[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);
    }
}

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

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

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

【问题讨论】:

    标签: ios binding xamarin.ios


    【解决方案1】:

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

    【讨论】:

    • 谢谢。出于某种原因,一旦我更改了支持的平台,我就开始看到与本机库的链接错误,这解释了为什么它不会加载。我的测试手机是 iPhone 4 (Armv7)。
    猜你喜欢
    • 1970-01-01
    • 2010-12-12
    • 2015-11-30
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    相关资源
    最近更新 更多