Nuget:结合使用 Xamarin Forms 和 Google GCM 包



我正在我的Xamarin Forms Android应用程序上实现推送通知,目前正在安装所需的NuGet包。

但是,我遇到了一个包冲突问题:Xamarin Google Play Services (GCM) 版本 42.1001.0 和 Xamarin Forms 版本 25.1.0 无法安装在同一项目中,这似乎是由于依赖关系。

我 https://forums.xamarin.com/discussion/57283/unable-to-find-a-version-of-xf-compatible-with 从 Xamarin 论坛上读到,这些包需要其依赖项的确切版本,这很不幸,因为存在一些重叠的依赖项包。

有没有办法解决这个问题?

安装Xamarin Forms 和 Google Play 服务时的安装日志:

Attempting to resolve dependency 'Xamarin.GooglePlayServices.Base (= 42.1001.0)'.
Attempting to resolve dependency 'Xamarin.GooglePlayServices.Basement (= 42.1001.0)'.
Attempting to resolve dependency 'Xamarin.Build.Download (≥ 0.4.2)'.
Attempting to resolve dependency 'Xamarin.Android.Support.v4 (≥ 25.1.0)'.
Attempting to resolve dependency 'Xamarin.Android.Support.Compat (= 25.1.0)'.
Attempting to resolve dependency 'Xamarin.Android.Support.Core.UI (= 25.1.0)'.
Attempting to resolve dependency 'Xamarin.Android.Support.Core.Utils (= 25.1.0)'.
Attempting to resolve dependency 'Xamarin.Android.Support.Fragment (= 25.1.0)'.
Attempting to resolve dependency 'Xamarin.Android.Support.Media.Compat (= 25.1.0)'.
Attempting to resolve dependency 'Xamarin.GooglePlayServices.Tasks (= 42.1001.0)'.
Attempting to resolve dependency 'Xamarin.GooglePlayServices.Iid (= 42.1001.0)'.
Installing 'Xamarin.Build.Download 0.4.2'.
Successfully installed 'Xamarin.Build.Download 0.4.2'.
Installing 'Xamarin.Android.Support.Compat 25.1.0'.
Successfully installed 'Xamarin.Android.Support.Compat 25.1.0'.
Installing 'Xamarin.Android.Support.Core.UI 25.1.0'.
Successfully installed 'Xamarin.Android.Support.Core.UI 25.1.0'.
Installing 'Xamarin.Android.Support.Core.Utils 25.1.0'.
Successfully installed 'Xamarin.Android.Support.Core.Utils 25.1.0'.
Installing 'Xamarin.Android.Support.Media.Compat 25.1.0'.
Successfully installed 'Xamarin.Android.Support.Media.Compat 25.1.0'.
Installing 'Xamarin.Android.Support.Fragment 25.1.0'.
Successfully installed 'Xamarin.Android.Support.Fragment 25.1.0'.
Installing 'Xamarin.Android.Support.v4 25.1.0'.
Successfully installed 'Xamarin.Android.Support.v4 25.1.0'.
Installing 'Xamarin.GooglePlayServices.Basement 42.1001.0'.
Successfully installed 'Xamarin.GooglePlayServices.Basement 42.1001.0'.
Installing 'Xamarin.GooglePlayServices.Tasks 42.1001.0'.
Successfully installed 'Xamarin.GooglePlayServices.Tasks 42.1001.0'.
Installing 'Xamarin.GooglePlayServices.Base 42.1001.0'.
Successfully installed 'Xamarin.GooglePlayServices.Base 42.1001.0'.
Installing 'Xamarin.GooglePlayServices.Iid 42.1001.0'.
Successfully installed 'Xamarin.GooglePlayServices.Iid 42.1001.0'.
Installing 'Xamarin.GooglePlayServices.Gcm 42.1001.0'.
Successfully installed 'Xamarin.GooglePlayServices.Gcm 42.1001.0'.
Install failed. Rolling back...
Updating 'Xamarin.Android.Support.v4 23.3.0' to 'Xamarin.Android.Support.v4 25.1.0' failed. Unable to find versions of 'Xamarin.Android.Support.Animated.Vector.Drawable, Xamarin.Android.Support.Vector.Drawable, Xamarin.Android.Support.v7.AppCompat, Xamarin.Android.Support.v7.RecyclerView, Xamarin.Android.Support.Design, Xamarin.Android.Support.v7.MediaRouter' that are compatible with 'Xamarin.Android.Support.v4 25.1.0'

Google Play Services然后Xamarin表单时的安装日志:

Attempting to resolve dependency 'Xamarin.Android.Support.v4 (≥ 23.3.0)'.
Attempting to resolve dependency 'Xamarin.Build.Download (≥ 0.4.2)'.
Attempting to resolve dependency 'Xamarin.Android.Support.Compat (= 25.1.0)'.
Attempting to resolve dependency 'Xamarin.Android.Support.Core.UI (= 25.1.0)'.
Attempting to resolve dependency 'Xamarin.Android.Support.Core.Utils (= 25.1.0)'.
Attempting to resolve dependency 'Xamarin.Android.Support.Fragment (= 25.1.0)'.
Attempting to resolve dependency 'Xamarin.Android.Support.Media.Compat (= 25.1.0)'.
Attempting to resolve dependency 'Xamarin.Android.Support.Design (≥ 23.3.0)'.
Attempting to resolve dependency 'Xamarin.Android.Support.v7.AppCompat (= 23.3.0)'.
Attempting to resolve dependency 'Xamarin.Android.Support.v4 (= 23.3.0)'.
Already referencing a newer version of 'Xamarin.Android.Support.v4'.

附言这是我的第一个问题帖子,所以如果我需要更多解释或细节,请告诉我。:)

我刚刚将 v42.1001.0Xamarin.GooglePlayServices.Gcm添加到具有最新Xamarin.Forms(v2.3.4.231) 的monoandroid71目标中,最终得到以下package.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Annotations" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Compat" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Core.UI" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Core.Utils" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Design" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Fragment" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Media.Compat" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Transition" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.v4" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.v7.AppCompat" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.v7.CardView" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.v7.MediaRouter" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.v7.Palette" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.v7.RecyclerView" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Vector.Drawable" version="25.3.1" targetFramework="monoandroid71" />
<package id="Xamarin.Build.Download" version="0.4.4" targetFramework="monoandroid71" />
<package id="Xamarin.Forms" version="2.3.4.231" targetFramework="monoandroid71" />
<package id="Xamarin.GooglePlayServices.Base" version="42.1001.0" targetFramework="monoandroid71" />
<package id="Xamarin.GooglePlayServices.Basement" version="42.1001.0" targetFramework="monoandroid71" />
<package id="Xamarin.GooglePlayServices.Gcm" version="42.1001.0" targetFramework="monoandroid71" />
<package id="Xamarin.GooglePlayServices.Iid" version="42.1001.0" targetFramework="monoandroid71" />
<package id="Xamarin.GooglePlayServices.Tasks" version="42.1001.0" targetFramework="monoandroid71" />
</packages>

我剥离了软件包和引用,并使用Xamarin.Formsv2.3.4.224 进行了尝试,结果是:

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Compat" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Core.UI" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Core.Utils" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Design" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Fragment" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Media.Compat" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Transition" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.v4" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.v7.AppCompat" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.v7.CardView" version="23.3.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.v7.MediaRouter" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.v7.Palette" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.v7.RecyclerView" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Android.Support.Vector.Drawable" version="25.1.0" targetFramework="monoandroid71" />
<package id="Xamarin.Build.Download" version="0.4.4" targetFramework="monoandroid71" />
<package id="Xamarin.Forms" version="2.3.4.224" targetFramework="monoandroid71" />
<package id="Xamarin.GooglePlayServices.Base" version="42.1001.0" targetFramework="monoandroid71" />
<package id="Xamarin.GooglePlayServices.Basement" version="42.1001.0" targetFramework="monoandroid71" />
<package id="Xamarin.GooglePlayServices.Gcm" version="42.1001.0" targetFramework="monoandroid71" />
<package id="Xamarin.GooglePlayServices.Iid" version="42.1001.0" targetFramework="monoandroid71" />
<package id="Xamarin.GooglePlayServices.Tasks" version="42.1001.0" targetFramework="monoandroid71" />
</packages>

对于遇到相同问题的任何人,请尝试从项目级别更新所有包。如果收到错误,请尝试手动更新每个包,以管理员身份运行 Visual Studio 并重试几次(信不信由你,有一个讨厌的包在尝试这样做 4 次后更新了!

最新更新