用于 Droid 的 Mono:缺少 __ANDROID__ 符号

Posted

技术标签:

【中文标题】用于 Droid 的 Mono:缺少 __ANDROID__ 符号【英文标题】:Mono for Droid: missing __ANDROID__ symbol 【发布时间】:2012-05-30 04:24:16 【问题描述】:

在这个有趣的网络研讨会中:

http://www.youtube.com/watch?v=WkNbRUqnSSc

演讲者谈到了__android__ 符号(以及其他更特定于每个操作系统版本的符号),它可以帮助开发人员编写更简洁的跨平台代码。

我使用 MonoDevelop 2.8(在 MacOS X 下)创建了一个项目,但该符号似乎没有在项目中定义。

调查这个问题时,我注意到在 MonoDevelop 中定义符号(使用项目属性面板)并不总是有效,而且它们经常用颜色编码创建奇怪的东西。

【问题讨论】:

【参考方案1】:

这是当前 MonoDevelop 环境中的一个小故障。 __ANDROID__ 是在低级构建过程中定义的,而不是在 csproj 中定义的。所以代码会编译OK,但是编辑器会很糊涂。

我已经用 Xamarin 创建了一个 bug/enhancement request,因为这可能会绊倒新手(它对我有影响!)。

monodroid 邮件列表中的这个thread 有更多信息。

由于每个平台都有唯一的 csproj 文件——即使是共享代码——我只是创建自己的符号来解决这个问题。在 MonoDevelop 中:项目属性、Build->Compiler、Define Symbols。

【讨论】:

以上是关于用于 Droid 的 Mono:缺少 __ANDROID__ 符号的主要内容,如果未能解决你的问题,请参考以下文章

调试Xamarin.Android时出现缺少"Mono.Posix 2.0.0"的错误

hearthbuddy中的Class276

protobuf-net 缺少可选字段的 has_ 函数?

各大编程字体比较

Graphql 中的包装器类型是啥?

[语音识别] kaldi -- aidatatang_200zh脚本解析:音素训练