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

时间:2018-01-18 11:01:38

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

我无法将Android支持库升级到26.x.x(API级别26 = 8.0 Oreo),因为Xamarin.forms对25.x.x有严格的依赖性。看来Xamarin.Forms不支持Mono.Android 8.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包的依赖关系,MonoAndroid 8.0甚至都没有列出。这是为什么?我怎样才能在XF中使用API​​级别26支持库?

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

  

如果查看Xamarin.Forms nuget包的依赖项,MonoAndroid 8.0甚至没有列出。看来Xamarin.Forms不支持Mono.Android 8.0?

您可以将Mono.Android 8.0Xamarin.Forms一起使用。这是我的nuget packages

  

检测到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.Android.Support.Compat 26.1.0.1 NuGet包中包含MonoAndroid v8.0的程序集。因此,您需要将Android项目的目标框架更改为8.0。您应该能够在Visual Studio project options中更改它。

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

  

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

  • 安装Android 8.0 SDK
  • 在VS
  • 的项目设置中调整目标SDK版本
  • 升级您的nunget包。 (包括Xamarin.Forms包)

理论上,我们应该在这里完成。但是,如果它不起作用,您可以执行一些额外的步骤:

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

答案 2 :(得分:0)

如果您设置目标框架,请说出8.1确保您的.csproj具有以下<TargetFrameworkVersion>v8.1</TargetFrameworkVersion>

对我来说问题是我还有<TargetFrameworkVersion>v7.1</TargetFrameworkVersion>我必须删除。删除此行后,一切都开始有效了。

显然,visual studio无法从csproj中删除以前的版本。

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