将Xamarin.forms应用程序上的目标框架从Android 8.1更改为Android 9(适用于Xamarin.Essentials)

时间:2019-04-15 20:07:26

标签: c# android xamarin xamarin.forms xamarin.essentials

我使用Visual Studio 2019中的项目模板创建了一个Xamarin.Forms应用程序。 该项目创建的目标是Android 8.1(Oreo)。

由于我希望使用Xamarin.Essentials的SecureStorage功能,因此必须将目标框架设置为Android 9。

用较新的版本替换目标框架时,出现错误消息,提示我需要下载相同版本的所有Android软件包。

Current

问题是更改目标框架后无法将软件包更新到v28.0.0.1。

Version conflict detected for Xamarin.Android.Support.Compat. 
Install/reference Xamarin.Android.Support.Compat 28.0.0.1 directly to project MyApp.Android to resolve this issue. 
MyApp.Android -> Xamarin.Forms 3.6.0.293080 -> Xamarin.Android.Support.CustomTabs 28.0.0.1 -> Xamarin.Android.Support.Compat (= 28.0.0.1) 
MyApp.Android -> Xamarin.Android.Support.v7.AppCompat 27.0.2.1 ->    Xamarin.Android.Support.Compat (= 27.0.2.1).   
MyApp.Android   C:\Users\User\source\repos\MyApp\MyApp\MyApp.Android\MyApp.Android.csproj`  

我尝试过,但是无法安装名为Xamarin.Android.Support.Compat (version 28.0.0.1)的软件包。 另外,打开.csproj并手动将版本号从27.0.2.1替换为28.0.0.1给我带来了MyApp.Android项目的配置xml中的许多错误。


如何解决此问题?由于Xamarin.Essentials nuget可以工作,因此我需要定位Android 9,但是在此之前,我需要将当前的Android.Support nugets更新为28.0.0.1。

1 个答案:

答案 0 :(得分:1)

我确实遇到了相同的问题,并通过手动编辑我的nuget引用解决了该问题。

选项1: 如果使用packages.config,请打开文件,然后手动将版本编辑为所需的值,如下面的示例所示

<packages>
  <package id="Xamarin.Android.Support.Design" version="28.0.0.1" targetFramework="net46" />
</packages>

选项2: 如果使用包引用,则需要编辑.csproj文件 在VS2019中,只需在解决方案资源管理器中单击它即可。在早期版本中,您需要先卸载它或将其打开为文本编辑器。 然后根据需要编辑该部分

    <ItemGroup>
      <PackageReference Include="Xamarin.Android.Support.Design" Version="28.0.0.1" />
    </ItemGroup>

也许也可以强制更新: Framework7 documentation