繁体   English   中英

使用 __ANDROID__ 在跨平台库中编写的代码不会在 Xamarin forms 应用程序中执行

[英]Code written in Cross-platform library with __ANDROID__ does not execute in Xamarin forms application

我在我的 Xamarin forms 应用程序中使用多目标库。 该库包含使用__ANDROID__条件编译器符号编写的代码。 当我在 Android 上运行应用程序时,它不会执行用符号编写的代码。

多目标库项目使用 MSBuild.Sdk.Extras。

<Project Sdk="MSBuild.Sdk.Extras" ToolsVersion="16.0">

  <PropertyGroup>
    <TargetFrameworks>netstandard2.0;MonoAndroid90</TargetFrameworks>
  </PropertyGroup>

我还通过在 Xamarin.Android 项目属性 --> 构建 --> 常规 --> 条件编译符号中定义条件符号来尝试它。 但它仍然不运行该特定代码。

#if __ANDROID__
        // do some andoid specific work
#endif

在 Android 上运行应用程序时,它应该运行此代码块。

好像您在错误的项目中定义__ANDROID__符号。 如果您在例如Project.Android中定义它,则它仅在此项目中定义,而不是在其他项目中定义。 可以定义解决方案级别的条件符号,您可以在此处阅读相关信息

可能您忘记在 Android 项目的构建部分的“条件编译符号”字段中添加该符号: ANDROID

不知道为什么在 iOS 项目创建时,符号自动插入,而在 Android 项目中没有插入符号。

安卓构建部分 这里的符号不是预设的。

ios构建部分

这里的符号是预设的。

您可以在条件编译部分找到更多信息: microsoft xamarin docs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM