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

标签 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(版本 28.0.0.1) 的包。 此外,打开 .csproj 并手动将版本号从 27.0.2.1 替换为 28.0.0.1 会给我带来一堆来自配置的错误MyApp.Android 项目的 xml。


我该如何解决这个问题?我需要以 Android 9 为目标,因为 Xamarin.Essentials nuget 可以工作,但我需要在此之前将当前的 Android.Support nuget 更新到 28.0.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>

也许强制更新也有效: https://learn.microsoft.com/en-us/nuget/consume-packages/reinstalling-and-updating-packages

关于c# - 将 Xamarin.forms 应用程序上的目标框架从 Android 8.1 更改为 Android 9(对于 Xamarin.Essentials),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55696532/

相关文章:

C# DataTable 更新多行

C#为DSA加密算法生成公钥和私钥

android - 如果由 android :layout_width ="match_parent" 设置 getWidth() 返回 0

android - 为什么我得到 Android : The target server failed to respond?

Xamarin 没有安装的配置文件与安装的 iOS 代码签名 key 匹配

C# 列表与字节数组在网络上的效率

c# - WPF UI 未由 INotifyPropertyChanged 更新

java - 应用程序在启动时崩溃,尝试查看登录屏幕是否存在文件

xamarin - 收到通过 xamarin.forms 中的 FCM 发送的通知,但图像未显示在系统托盘中

unit-testing - 从命令行进行 Xamarin 单元测试