【问题标题】:.NetStandard and Xamarin.Forms Android compatibility.NetStandard 和 Xamarin.Forms Android 兼容性
【发布时间】:2019-04-27 04:54:30
【问题描述】:

根据.NET implementation support page

.NetStandard 1.x 仅支持Xamarin.Android 7 及以上版本

.NetStandard2只支持Xamarin.Android8及以上

因此,假设我无法支持 Android 5.1+,我避免将我的 pcls 升级到 .netstandard。

但是在最近的测试中,我已经将整个 Android 应用程序(即Xamarin.Forms PCL)转换为.NetStandard 2 class library,并且它在每个平台上都可以完美运行(在模拟器和 Android 5.1+ 以上的物理设备中)。

这至少可以说令人困惑。是不是有些东西可能会损坏,或者某些功能可能不起作用,或者我会遇到一些我不知道的兼容性问题?还是我没有正确理解 .NET 实现支持页面和相关概念?

【问题讨论】:

  • 在使用 xamarin.forms 时,由于 netframework4.5,我没有得到高于 1.0 的版本。
  • @NevilleNazerane 。我根本没想到它会起作用,这就是我如此困惑的原因。尽管使用 XF 2.5 并将我的 pcl 转换为 .netstandard 2 它似乎可以工作(在我对 nugets 进行排序之后)
  • 您是否对在 Android 5 设备上运行感到困惑?对新 SDK 的支持是构建环境和工具 - 您始终可以使用更高版本的 Android SDK 构建应用程序并在更早的版本上运行它。
  • @JimBobBennett 是的,我认为这是主要的困惑......当这样说时这很有意义
  • “Xamarin.Android 8 及以上”与“Android 5.1+”有不同的含义(它们完全指代不同的东西)。因此,您应该三思而后行,并找到正确的方法来理解事实。我个人认为根本没有令人困惑的部分。

标签: c# xamarin xamarin.forms .net-standard


【解决方案1】:

You can read in-depth explanation on Xamarin official webpage:

随着 Android 平台的发展和新 Android 版本的发布, 每个 Android 版本都分配了一个唯一的整数标识符,称为 API 级别。因此,每个 Android 版本对应一个 Android API 级别。因为用户在旧版本以及 最新版本的 Android,真实世界的 Android 应用程序必须是 旨在与多个 Android API 级别配合使用。

每个版本的 Android 都有多个名称:

  • Android 版本,例如 Android 7.1
  • 代号,例如 Nougat A
  • 对应的API等级,如API等级25

Android 代号可能 对应多个版本和 API 级别(如列表所示 下面),但每个 Android 版本都对应一个 API 级别。

此外,Xamarin.Android 定义了映射到的构建版本代码 当前已知的 Android API 级别。以下列表可以提供帮助 您在 API 级别、Android 版本、代号和 Xamarin.Android 构建版本代码。

API 26 (Android 8.0) – Oreo,2017 年 8 月发布。

API 25 (Android 7.1) – 牛轧糖,已发布 2016 年 12 月。

.....

【讨论】:

  • 所以 Xamarin.Android 8 相当于 Android API 级别 8?
  • 不是 API 级别,而是该示例中的公共 android 版本 (8.0)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-26
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多