【问题标题】:Unable to change target framework for Android Xamarin application无法更改 Android Xamarin 应用程序的目标框架
【发布时间】:2019-05-04 20:14:26
【问题描述】:

我创建了一个空白的移动应用 (Xamarin.Forms) 应用程序。

默认情况下,此空应用程序的目标 Android 框架设置为版本 8.1 (Oreo)

我想将此版本更改为 8.0 版,该版本已在工作站上安装并可用。

但是当我选择版本 8.0 并且 Visual Studio 重新编译项目时,我得到了一堆错误。

错误 NU1202 包 Xamarin.Android.Support.Design 27.0.2.1 不是 兼容 monoandroid80 (MonoAndroid,Version=v8.0)。包裹 Xamarin.Android.Support.Design 27.0.2.1 支持:monoandroid81 (MonoAndroid,版本=v8.1)

好的,那么。我打开 NuGet Manager 并尝试更新(降级)相应组件的版本。

但是,当我尝试在现有的较高版本上重新安装较低版本的组件时,我会收到相同的错误消息。对于我想要降级的每个组件,我都会收到这些消息。

问题:如何更改 Android Xamarin 应用程序的目标框架版本,它最终会工作?


更新

我尝试从解决方案中的 Android Xamarin 项目中删除 MonoAndroid 引用,并手动添加对较低版本的引用。

但当我在对话框中单击“确定”时,已添加 MonoAndroid 参考版本 8(而不是版本 7)。

【问题讨论】:

  • 您需要以某种方式将 MonoAndroid 替换为 7.x 版本。
  • @TheWanderer 谢谢你,但我该怎么做这个替换?我认为(可能我是一个天真的人)当我更改目标 Android API 版本时,像 VS 这样的完整 IDE 会做到这一点。但是我错了。我在 StackOverflow 上进行了搜索,但不幸的是,帖子 like this 没有帮助。
  • 我希望我知道。我什至从未使用过 VS,更不用说 Xamarin。
  • @TheWanderer 无论如何谢谢。我已经用图片更新了我的问题。我试图删除对 MonoAndroid 的引用并将其替换为对较低版本的引用。但它没有用。 Visual Studio 添加的版本不是我手动选择的。
  • 对于默默否决我的问题的人,我的问题有什么问题?

标签: android xamarin


【解决方案1】:

如果您确实需要使用 8.0 而不是 8.1,那么您需要删除所有 27.xx 版本的 Xamarin.Android.Support 包并安装 26.1.0.1 版本,而不是像 27.xx 系列一样与 Android 版本

但是为什么需要使用 Android 8.0 来定位/编译?通常,您希望使用最新的可用版本进行编译并以最新版本为目标。然后,您可以在项目属性的 Android Manifest“最低 Android 版本”属性中设置您想要支持的最低 android 版本。或者清单的原始 XML 中的这个条目:

<uses-sdk android:minSdkVersion="21" /> 

其中“21”是您要支持的最低版本的 API 编号。只要确保您不使用仅在 Android 版本中可用的任何类型/方法/等 > 您设置的最低版本。如果您这样做,您的应用将在所有 Android 版本 >= 最低版本集上运行。所以也许你只需要设置最低版本而不是“编译...”和/或“目标”android版本?

【讨论】:

  • 感谢您的帮助,我想使用 8.0,因为我的实际设备安装了 Android 8.0。不是8.1。我想检查一下这个应用程序是如何在这个实际设备上运行的。而且,编译Android 8.0就是一个例子,如果我想编译Android 7,甚至Android 6的项目怎么办?关于删除不需要的包,我尝试了 NuGet 管理器,它不允许重新安装旧版本的包。我想我必须手动编辑 csproj 和所有项目 xml 文件,对吧?
  • 再一次,您仍然可以使用 8.1 编译并在所有早期的 android 版本上运行,只需在 Android 清单中设置最低 android 版本,所以我强烈建议使用最新的 Android 版本进行编译......它会让您现在和未来的生活更轻松。
  • “我想我必须手动编辑 csproj 和所有项目 xml 文件,对吧?”不必要。您可以在项目属性(VS for Mac 中的选项)中设置“使用...编译”、最低和目标 Android 版本。您可以完全卸载所有这些 Xamarin.Android.Support 包,并通过在 nuget 包管理器的下拉列表中选择它来专门重新安装任何旧版本。我知道,我刚刚用你的确切场景测试了这个,它就像一个冠军。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-18
  • 2023-04-06
  • 2020-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多