[英]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.