找不到应用程序Mono.Android.Platform.apilevel23或Xamarin.Android.Platform

找不到应用程序Mono.Android.Platform.apilevel23或Xamarin.Android.Platform,xamarin,xamarin.android,Xamarin,Xamarin.android,我有一个Xamarin.Android应用程序,它是通过构建服务器构建的。该应用程序的目标是API级别23和最低Android版本4.1(API 16)。在调试期间,应用程序工作正常,但当生成服务器编译应用程序、打包、签名和对齐应用程序时,它会在加载时崩溃,并出现以下错误: 无法获取提供程序mono.MonoRuntimeProvider:java.lang.RuntimeException:找不到应用程序mono.Android.Platform.apilevel23或Xamarin.Andr

我有一个Xamarin.Android应用程序,它是通过构建服务器构建的。该应用程序的目标是API级别23和最低Android版本4.1(API 16)。在调试期间,应用程序工作正常,但当生成服务器编译应用程序、打包、签名和对齐应用程序时,它会在加载时崩溃,并出现以下错误:

无法获取提供程序mono.MonoRuntimeProvider:java.lang.RuntimeException:找不到应用程序mono.Android.Platform.apilevel23或Xamarin.Android.Platform

大多数手机会因上述错误而立即崩溃,但少数设备工作正常。这些设备唯一的共同点是它们在开发过程中用于部署应用程序。这让我相信他们安装了共享运行时,因此它不会失败。构建服务器拥有最新的Xamarin.Android(就像开发机器一样)、最新的Java、最新的JDK和最新的Android库(根据SDK管理器)。正在构建的配置不使用共享运行时,它没有链接(尽管我也仅使用链接SDK程序集进行了尝试),并且它只支持
armeabi-7va
ABI


我做错了什么?

我终于找到了问题,这似乎是Xamarin(或Mono?)的错误。我们有AndroidManifest.xml和AndroidManifestAlpha.xml。在生成过程中,我们将
/p:AndroidManifest=Properties/AndroidManifestAlpha.xml
指定给MSBUILD参数,但编译仅将所有活动、服务和mono信息添加到
AndroidManifest.xml
文件中。构建最终使用指定的
AndroidManifestAlpha.xml
文件,并在不使用mono运行时的情况下编译APK;导致上述错误。

更改目标Android版本。在Mac上的VisualStudio中,路径是Project->.Options->General->TargetFramework

如果有人发现此错误,请在其他帖子中查看我的答案:

这是为Xamarin Studio设计的,但我想应该也适用于VS Xamarin扩展

我的主要想法是将android-25(或android-23用于原始问题)文件夹放入android SDK平台目录


我想它允许Xamarin引擎安装正确的.Platform.ApiLevel\uk并使用共享库。

我认为我的问题在于我使用的是共享运行时(复制了发布配置,但没有移动)。该应用程序只在调试过的设备上运行,这是一条很好的线索。谢谢。@AlexSorokoletov是的。我的构建过程使用脚本修改清单文件