我正在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上运行应用程序时,应运行此代码块。
似乎您在错误的项目中定义了__ANDROID__
符号。如果您在例如Project.Android
仅在此项目中定义,其他项目则未定义。可以定义解决方案级别的条件符号,您可以阅读有关它的信息here
可能您忘记了在Android项目的构建部分内的“条件编译符号”字段中添加该符号:ANDROID
我不知道为什么在iOS上创建项目时为什么会自动插入该符号,而在Android项目中却没有插入该符号。
这里符号是预设的。
您可以在条件编译部分下找到更多信息:microsoft xamarin docs