[英]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 项目中没有插入符号。
这里的符号是预设的。
您可以在条件编译部分找到更多信息: microsoft xamarin docs
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.