【问题标题】:Unable to installl Xamarin.Azure.NotificationHub.Android nuget to existing project无法将 Xamarin.Azure.NotificationHub.Android nuget 安装到现有项目
【发布时间】:2021-02-27 09:33:51
【问题描述】:

当我尝试将 Xamarin.Azure.NotificationHub.Android nuget 包安装到我现有的 xamarin.forms 项目时出现以下错误。

在现有 packages.config 文件中检测到一个或多个未解决的包依赖关系约束。必须解决所有依赖约束才能添加或更新包。如果这些包正在更新,则此消息可能会被忽略,否则可能会阻止当前包操作:'Xamarin.Forms 4.5.0.617 约束:Xamarin.AndroidX.Lifecycle.LiveData (>= 2.1.0 )', 'Xamarin.Forms 4.5.0.617 约束: Xamarin.Google.Android.Material (>= 1.0.0)', 'Xamarin.Forms 4.5.0.617 约束: Xamarin.AndroidX.Legacy.Support.V4 (>= 1.0 .0)', 'Xamarin.Forms 4.5.0.617 约束:Xamarin.AndroidX.Browser (>= 1.0.0)'

找不到与“Xamarin.Android.Arch.Core.Runtime 1.1.1.3 约束”兼容的“Xamarin.Android.Arch.Core.Common”版本:Xamarin.Android.Arch.Core.Common (= 1.1.1.3)', 'Xamarin.Android.Arch.Lifecycle.LiveData 1.1.1.3 约束:Xamarin.Android.Arch.Core.Common (= 1.1.1.3)', 'Xamarin.Android.Arch.Lifecycle.LiveData.Core 1.1.1.3 约束:Xamarin.Android.Arch.Core.Common (= 1.1.1.3)'。

但我的项目已经安装了 Xamarin.Android.Arch.*** 1.1.1.3。

将 Xamarin.Azure.NotificationHub.Android nuget 安装到新项目时没有问题。安装到已经使用 AppCenter 的现有 Xamarin.Forms 项目时会发生错误。 这是因为某些包依赖冲突吗?如果有,如何解决?

【问题讨论】:

  • 以上的包你安装了吗?
  • 你说的上面的包是什么意思? Xamarin.Android.Arch.*?
  • 我的意思是 Xamarin.AndroidX.xxxx 包,你的 Xamarin.forms 版本是什么,你尝试更新它们吗?
  • 当我尝试安装一个 Xamarin.AndroidX.xxxx 包时,我遇到了同样的错误:找不到与“Xamarin”兼容的“Xamarin.AndroidX.SavedState”版本.AndroidX.Activity 1.1.0.4 约束:Xamarin.AndroidX.SavedState (>= 1.1.0.3-alpha01)'、'Xamarin.AndroidX.Fragment 1.2.5.3 约束:Xamarin.AndroidX.SavedState (>= 1.1.0.3-alpha01) ', 'Xamarin.AndroidX.Lifecycle.ViewModelSavedState 2.2.0.3 约束:Xamarin.AndroidX.SavedState (>= 1.1.0.3-alpha01)'。
  • 我的 xamarin.android 项目使用 package.config 文件来保存已安装的包。这可能是问题吗?

标签: xamarin.forms xamarin.android nuget azure-notificationhub


【解决方案1】:

Xamarin.Azure.NotificationHub.Android (1.1.1) 包使用 Xamarin.GooglePlayServices.Base (>= 70.x.x)Xamarin.Firebase.Messaging (>= 70.x.x) 作为依赖项。项目中安装的其中一个包也依赖于Xamarin.GooglePlayServices.Base 包。 Xamarin.Azure.NotificationHub.Android (1.1.1) 包需要更高版本的GooglePlayservices.Base (>= 70.x.x)package。由于我的项目使用 package.config 文件来管理已安装的包,因此现有包已经安装了较低版本的 GooglePlayservices.Base 包(60.x.x)。

我能够通过两种方式解决此问题:

  1. 卸载与其所有依赖项产生冲突的包。然后重新安装包,将依赖行为设置为最低。然后我就可以安装 NotificationHub.Android 包而没有任何错误。

  2. Migrate from package.config to new PackageReference 格式。这样就更容易看到项目上直接安装了哪些包,不用担心依赖问题。这也显示了哪些包产生了冲突。按照错误日志的建议修复了该问题。

NU1107:检测到 Xamarin.GooglePlayServices.Basement 的版本冲突。将 Xamarin.GooglePlayServices.Basement 71.1620.4 直接安装/引用到项目 XXX 以解决此问题。 XXX -> Xamarin.Azure.NotificationHubs.Android 1.1.1 -> Xamarin.Firebase.Messaging 71.1740.4 -> Xamarin.GooglePlayServices.Basement (>= 71.1620.4)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多