用__ANDROID__用跨平台库编写的代码无法在Xamarin表单应用程序中执行

问题描述 投票:0回答:2

我正在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上运行应用程序时,应运行此代码块。

c# xamarin.forms xamarin.android msbuild multitargeting
2个回答
0
投票

似乎您在错误的项目中定义了__ANDROID__符号。如果您在例如Project.Android仅在此项目中定义,其他项目则未定义。可以定义解决方案级别的条件符号,您可以阅读有关它的信息here


0
投票

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

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

android build section这里的符号不是预设的。

ios build section

这里符号是预设的。

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

© www.soinside.com 2019 - 2024. All rights reserved.