多平台开发:使用最新的Visual Studio和旧版本的Android

问题描述 投票:1回答:1

[更新]我终于能够使用最新的工具链在4.2上部署我们的应用程序。我得到一个错误。原文之后,请参阅下文。

我们正在寻找一种长期解决方案,以继续使用最新版本的Visual Studio(在撰写本文时为2019),同时继续为旧的Android平台(4.4之前的版本)进行开发。

Xamarin @ Microsoft在Xamarin.Android 9.2版中放弃了对4.4之前的Android的支持,但是我们不能删除对我们产品的支持。到目前为止,我们一直在使用VS2017进行特定的android开发,但是VS2019和VS2017开发环境之间的差距越来越大,这在日常开发中增加了越来越大的开销。

我们的项目是使用最常见的代码库开发的,用于部署在PC上的软件,但是部分代码还是可以在特定设备上运行的Android应用程序的一部分。对于PC开发(这是我们的主要活动),我们希望尽可能使用最新的.NET标准和最新工具进行编码。

Android版本是一种非常特定于其使用的硬件的工业软件,我们不能期望Android OS会被更新,因此我们对Android 4.2.2的最低支持仍然受困。

我已经在SO和其他论坛上进行了搜索,但是没有找到任何“好的”长期解决方案。有关信息,这里是一些我发现与此主题相关的好信息:

https://docs.microsoft.com/en-us/xamarin/android/release-notes/9/9.2

https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/android-api-levels?tabs=windows

Which .Net Standard version supports which Android versions?

https://github.com/xamarin/xamarin-android/blob/master/Documentation/guides/messages/xa4216.md

https://docs.microsoft.com/en-us/dotnet/standard/net-standard

当前,我认为我们可以做的是:

1)主要将.NET标准库用于我们代码的公共部分

2)直接使用Xamarin.Android的程序集很少,通常仅用于UI部件。

注意,这与我们现在已经在做的事情差不多(除了我可以将更多程序集移植到.NET Standard之外。

但是,由于我们以API级别4.4为目标并在4.2上使用了该应用程序,因此我们可能会调用一些4.2中不支持的API,甚至更糟糕的是,由于新的Xamarin / Mono运行时不支持旧的Android,因此该API被支持但存在错误版本。由于存在XA4216警告,因此尤其如此:即使由于清单允许,即使我们可以在较旧的android上部署并运行它,我们也不能确保OS提供Mono运行时使用的所有必要功能。目前,警告XA4216适用于4.0.3版,但我们看到更新VS2019并收到针对Android 4.2的警告的日子已经到来。

因此有比以下更好的解决方案:

1)保留旧的VS2017 /旧的Xamarin.Android构建环境并阻止我们的日常工作,以确保与Android 4.2的完全兼容性

2)使用最新的Xamarin将我们的构建和开发环境完全更新到VS2019,并祈祷该实现未在较早的OS上进行调试。

我希望能够使用2,并拥有一些保证一切正常的保险,而不必在每次更新Visual Studio时都重新测试整个应用程序。你怎么看?为了确保应用程序的稳定性,我们会使用旧的构建系统(VS2017 +旧的Xamarin.Android),还是使用最新的Xamarin升级到VS2019是“安全”的风险吗?

感谢您对此主题有任何好的建议。

PS:我提出了解决方案2:“使用最新的Xamarin将我们的构建和开发环境完全更新到VS2019,并祈祷该实现不会在较早的OS上出现错误。”首先在我的PC上本地进行测试。在对我们的应用程序进行必要的更改以使其能够使用VS2019和最新的Xamarin进行构建后,我部署了在我们的Android 4.2.2设备上进行测试(整整一整天给我看)。我收到以下错误,应用程序冻结:W / libc(9196):在Android上未实现protoent * getprotobyname(char const *)(3)。

也许祈祷还不够...有什么主意吗?

android xamarin visual-studio-2019 .net-standard multiplatform
1个回答
0
投票

选择选项2,并使用最新的Xamarin将您的构建和开发环境完全更新到VS2019!该实现不应对任何较旧的操作系统造成错误。

即使它确实添加了错误,也只需在质量检查中测试您的代码即可。至于生产,您可以在应用程序上放置良好的崩溃分析,并且能够捕获,报告和修复所有错误。

[在大多数情况下,在Android上使用低于Android 4.4的用户数量不到所有用户的0.001%。到那时,在您的应用程序中实现辅助功能更有意义,因为这会影响1000倍的用户。

© www.soinside.com 2019 - 2024. All rights reserved.