C# 在Xamarin.Forms中使用android支持库API Level 26(MonoAndroid 8.0 Oreo)?

C# 在Xamarin.Forms中使用android支持库API Level 26(MonoAndroid 8.0 Oreo)?,c#,android,xamarin.forms,xamarin.android,mono,C#,Android,Xamarin.forms,Xamarin.android,Mono,我无法将Android支持库升级到26.x.x(API级别26=8.0 Oreo),因为Xamarin.forms对25.x.x有严格的依赖关系。似乎Xamarin.Forms不支持Mono.Android8.0 例如: 尝试将Xamarin.Android.Support.Design升级到26.1.0.1时,出现以下错误: “检测到Xamarin.Android.Support.Compat的版本冲突。请直接从项目中引用包以解决此问题。”。 TestApp.Android->Xamarin.

我无法将Android支持库升级到26.x.x(API级别26=8.0 Oreo),因为Xamarin.forms对25.x.x有严格的依赖关系。似乎Xamarin.Forms不支持Mono.Android8.0

例如: 尝试将Xamarin.Android.Support.Design升级到26.1.0.1时,出现以下错误: “检测到Xamarin.Android.Support.Compat的版本冲突。请直接从项目中引用包以解决此问题。”。 TestApp.Android->Xamarin.Android.Support.Design 26.1.0.1->Xamarin.Android.Support.Compat(=26.1.0.1) TestApp.Android->Xamarin.Android.Support.v4 25.4.0.2->Xamarin.Android.Support.Compat(=25.4.0.2)。”


另外,如果您查看Xamarin.Forms nuget包的依赖项,MonoAndroid8.0甚至没有列出。为什么呢?如何在XF中使用API level 26支持库?

您需要确保为Oreo安装了Android SDK。然后,您需要转到android项目属性(右键单击解决方案资源管理器中的项目文件夹,并从弹出菜单中选择“属性”)

在“应用程序选项卡”下,您将找到“使用Android版本编译:(目标框架)”选择Oreo SDK。现在您应该能够更新应用程序兼容库以使用26.2.0.1

如果您查看Xamarin.Forms nuget包的依赖项,MonoAndroid8.0甚至没有列出。似乎Xamarin.Forms不支持Mono.Android8.0

您可以将
Mono.Android 8.0
Xamarin.Forms
一起使用

检测到Xamarin.Android.Support.Compat的版本冲突。请直接从项目中引用该包以解决此问题。TestApp.Android->Xamarin.Android.Support.Design 26.1.0.1->Xamarin.Android.Support.Compat(=26.1.0.1)TestApp.Android->Xamarin.Android.Support.v4.0.2->Xamarin.Android.Support.Compat(=25.4.0.2)

Xamarin.Android.Support.Compat 26.1.0.1
NuGet包包含用于
MonoAndroid v8.0
的程序集。因此,您需要将Android项目的目标框架更改为8.0。您应该能够在Visual Studio中更改该框架

如果v8.0不可用,您可能需要更新Android SDK

在Xamarin.Forms中使用android支持库API Level 26(MonoAndroid 8.0 Oreo)

  • 安装
  • 在VS中的项目设置中调整目标SDK版本
  • 升级您的nunget包。(包括Xamarin.Forms包)
理论上,我们应该在这里完成。但是,如果它仍然不起作用,您可以执行一些额外的步骤:

  • 删除解决方案中的所有“bin”和“obj”文件夹
  • 重新启动VS
  • 执行nuget恢复和重建

如果将目标框架设置为8.1,请确保.csproj具有以下
v8.1

我的问题是,我还有一个
v7.1
必须删除。一旦我删除了这一行,一切都开始工作了

显然,VisualStudio无法从csproj中删除以前的版本


您可以通过卸载android项目来访问csproj,然后右键单击android项目,编辑csproj,然后您可以查找TargetFrameworkVersion标记。

lifesaver,我还想提到,如果在安装所需的android sdk后(从android sdk管理器)SDK不会出现“使用Android版本编译:(目标框架)”的下拉列表,然后执行以下操作: