1

我在我的 Xamarin 表单应用程序中使用多目标库。该库提供了用__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 上运行应用程序时,它应该运行此代码块。

4

2 回答 2

1

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

于 2019-10-04T13:59:46.820 回答
0

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

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

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

ios构建部分

这里的符号是预设的。

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

于 2019-10-04T15:58:18.597 回答