簡體   English   中英

使用 __ANDROID__ 在跨平台庫中編寫的代碼不會在 Xamarin forms 應用程序中執行

[英]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 項目中沒有插入符號。

安卓構建部分 這里的符號不是預設的。

ios構建部分

這里的符號是預設的。

您可以在條件編譯部分找到更多信息: microsoft xamarin docs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM