xamarin - 我们如何在 Xamarin.forms 中添加 android nugets 而不仅仅是在 Xamarin.Android
问题描述
我正在尝试在 Xamarin Forms 项目中安装以下 NuGet(而不是在 Xamarin.Android 项目中)
- Xamarin.Android.Support.core.Utiles
- Xamarin.Android.Support.Animated.Vector.Drawable
我想MediaProjectionManager
在没有平台特定条件的情况下访问我的 Xamarin 项目类中的 。请帮我解决一下这个。
现在,每当我尝试在 Xamarin Forms 项目中安装与 android 相关的 NuGet 包时,都会收到以下错误。
Error NU1202 Package Xamarin.Android.Support.Vector.Drawable 28.0.0.3 is not compatible with netstandard2.1 (.NETStandard,Version=v2.1). Package Xamarin.Android.Support.Vector.Drawable 28.0.0.3 supports:
- monoandroid60 (MonoAndroid,Version=v6.0)
- monoandroid70 (MonoAndroid,Version=v7.0)
- monoandroid71 (MonoAndroid,Version=v7.1)
- monoandroid80 (MonoAndroid,Version=v8.0)
- monoandroid81 (MonoAndroid,Version=v8.1)
- monoandroid90 (MonoAndroid,Version=v9.0)
Error Package restore failed. Rolling back package changes for .
如果我在 Xamarin 项目的 cs 文件中编写以下代码,并且如果我尝试从 Xamarin.Android 项目的 MainActivity.cs 文件访问以下对象,则会出现以下错误。
MediaProjection 对象在 XamarinFile 中不可用。它无法访问任何与 android 相关的函数或对象。
#if __ANDROID__
public MediaProjection MediaProjection { get; set; }
#endif
XamarinFile.Instance.MediaProjection = manager.GetMediaProjection((int)resultCode, data);
解决方案
您正在尝试将特定于 Android 的库安装到不兼容的 Xamarin .NET Standard/PCL 项目中。错误本身清楚地说明了这一点。如果您想为 Xamarin Forms 应用程序提供任何特定于平台的功能,则可以尝试为其创建自定义视图并在本机项目中编写自定义渲染器。在对应的native项目中,安装想要的包,实现你想要的。
有关更多详细信息,请参阅Xamarin 表单自定义呈现器文档。
否则,请尝试将您的项目创建为共享项目而不是 .NET 标准项目。
有关更多详细信息,请参阅此处的共享项目文档。
推荐阅读
- powershell - Powershell Outlook RecipientType 无法识别
- python - Dataclass - 如何将可变列表作为字段
- .net - 如何让 elasticsearch 为通过 REST 创建的对象创建唯一 ID?
- sql - BigQuery - 过滤器从嵌套表中无效
- java - 我的应用程序无法在某些手机上运行,有时
- python - 如何使用 list.split() 从用户获取确切数量的输入到列表
- python - (pandas json_normalize) 嵌套 Json
- java - 将带有嵌套字符的字符串转换为特定的json格式,如java中的格式
- python-3.x - Python为浮点加法返回错误的结果
- powershell - 如何使用 power shell 脚本获取 IIS 站点物理路径和绑定详细信息