Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法更改Android Xamarin应用程序的目标框架_Android_Xamarin - Fatal编程技术网

无法更改Android Xamarin应用程序的目标框架

无法更改Android Xamarin应用程序的目标框架,android,xamarin,Android,Xamarin,我创建了一个空白的移动应用程序(Xamarin.Forms) 默认情况下,此空应用程序的目标Android框架设置为8.1版(Oreo) 我想将此版本更改为8.0版,该版本已安装并可在工作站上使用 但是,当我选择8.0版本并且VisualStudio重新编译项目时,我会遇到一系列错误 错误NU1202程序包Xamarin.Android.Support.Design 27.0.2.1不可用 与monoandroid80兼容(MonoAndroid,版本=v8.0)。包裹 Xamarin.

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

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

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

但是,当我选择8.0版本并且VisualStudio重新编译项目时,我会遇到一系列错误

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

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

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

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


更新

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

但是当我点击对话框上的OK时,MonoAndroid参考版本8(而不是版本7)已经被添加


如果您真的需要使用8.0而不是8.1,那么您需要删除Xamarin.Android.Support软件包的所有27.x.x版本,并安装26.1.0.1版本,因为27.x.x系列与Android版本<8.1不兼容

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

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


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

不知何故,你需要用7.x版来替换MonoAndroid。@TheLoverter谢谢你,但是我怎么才能替换它呢?我想(可能我是个天真的人),当我更改目标Android API版本时,像VS这样成熟的IDE会这样做。但我错了。我搜索了StackOverflow,但不幸的是帖子没有帮助。我希望我知道。我甚至从来没有用过VS,更不用说Xamarin了。《流浪者》谢谢。我用图片更新了我的问题。我试图删除对MonoAndroid的引用,并将其替换为对较低版本的引用。但它没有起作用。Visual Studio添加了另一个版本,而不是我手动选择的版本。对于那些静默否决我问题的人,我的问题出了什么问题?感谢您的帮助,我想使用8.0,因为我的实际设备安装了Android 8.0。不是8.1。我想检查一下这个应用程序是如何在这个实际设备上运行的。此外,为安卓8.0编译就是一个例子,如果我想为安卓7,甚至安卓6编译这个项目呢?关于删除不需要的软件包,我尝试了NuGet manager,它不允许使用旧版本重新安装软件包。我想我必须手动编辑csproj和所有项目xml文件,对吗?同样,您仍然可以使用8.1进行编译,只需在android清单中设置最低android版本,即可在所有早期android版本上运行,因此我郑重建议使用最新安卓版本进行编译。。。这将使您现在和将来的生活更加轻松。“我想我必须手动编辑csproj和所有项目xml文件,对吗?”不一定。您可以在项目属性(VS for Mac中的选项)中设置“编译时使用…”、最低版本和目标Android版本。您可以完全卸载所有这些Xamarin.Android.Support软件包,并通过在nuget软件包管理器的下拉列表中选择它来重新安装任何旧版本。我知道,我刚刚用你的真实场景做了测试,效果很好。