Xamarin iOS - 绑定项目 - 警告

时间:2013-07-11 05:59:35

标签: ios binding xamarin.ios xamarin

使用

Xamarin Studio - 4.0.4(build 2) 单声道 - 2.10.11 Xamarin.iOS - 6.3.5.43 Mac OS X - 10.8.2

构建包装器绑定类时,我收到一条警告,说“System.Runtime.CompilerServices.ExtensionAttribute”存在于多个程序集中。它只是一个警告,但构建.dll文件。

目标GenerateBindings:

工具/开发人员/ MonoTouch / usr / bin / btouch执行以参数开头:/ unsafe / d:DEBUG ApiDefinition.cs /s:StructsAndEnums.cs / tmpdir:obj / Debug / ios / / sourceonly:obj / Debug / ios // sources.list

警告CS1685:

预定义类型System.Runtime.CompilerServices.ExtensionAttribute' is defined in multiple assemblies. Using definition from mscorlib'

/Developer/MonoTouch/usr/lib/mono/2.1/mscorlib.dll(与先前警告相关的符号位置)         /Library/Frameworks/Mono.framework/Versions/2.10.11/lib/mono/2.0/System.Core.dll(与先前警告相关的符号位置)

但是当在另一个项目中使用创建的绑定类时,它会给出错误说明 编译为本机代码 - '错误MT5202:原生链接失败。请查看构建日志。'

在构建日志中 ld:找不到文件:/var/folders/w4/xsz8x8vx0_51hjxj474r1_fxhlq7x3/T/tmp9aef74.tmp/libPrint.a collect2:ld返回1退出状态

注意:libPrint.a是我的静态库

-Update -

将libPrint.a文件绑定到包装类时,应将.a文件添加到项目中,而不是添加到“Resources”文件夹中。这解决了我们面临的问题。

2 个答案:

答案 0 :(得分:1)

libPrint.a是否支持您构建iOS项目的架构?

IOW,如果你正在为Simulator编译,你的libPrint.a需要支持i386。

如果您正在为设备进行编译,则需要支持您要定位的任何ARM arch。

答案 1 :(得分:1)

警告是因为多个程序集中的System.Runtime.CompilerServices.ExtensionAttribute'存在歧义。

保持警告,真正的问题是添加libPrint.a文件。 这是一个小小的愚蠢错误。 xamarin的docs清楚地解释了它。 它应该添加到项目中,而不是“Resources”文件夹中。 这解决了我在项目中使用.dll文件时遇到的错误。