0
votes

I'm implementing push notifications on my Xamarin Forms Android app and currently installing required NuGet packages.

However, I've come across a package conflict issue: Xamarin Google Play Services (GCM) version 42.1001.0 and Xamarin Forms version 25.1.0 can't be installed on the same project, which seems to be due to the dependencies.

I read from the Xamarin forums https://forums.xamarin.com/discussion/57283/unable-to-find-a-version-of-xf-compatible-with, the packages require the exact version for their dependencies, which is unfortunate because there are some overlapping dependency packages.

Is there a way around this?

The installation log when installing Xamarin Forms then Google Play Services:

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'

The installation log when Google Play Services then Xamarin Forms:

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'.

P.S. It's my first question post, so let me know if I need more explanations or details. :)

2
What Xamarin.Android framework version are you targeting?SushiHangover
Compilation (Target Framework) is set to Use Latest Platform (Android 7.1 (Nougat)) and Target Android version is set to Use Compile using SDK versionNick Toh
Which Xamarin.Forms version are you using?SushiHangover
Version 2.3.4.224 (just realised the question had a completely wrong version number, sorry about that)Nick Toh
I'm trying to install Xamarin Google Play Services - GCM version 42.1001.0Nick Toh

2 Answers

0
votes

I just added Xamarin.GooglePlayServices.Gcm v42.1001.0 to a monoandroid71 targeted w/ the latest Xamarin.Forms(v2.3.4.231) and ended up with a package.config of:

<?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>

I stripped the packages and refs and tried it with Xamarin.Forms v2.3.4.224 and ended up with:

<?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>
0
votes

For anyone that's having this same issue, try updating all your packages from the project level. If you get errors, try manually updating each package, run Visual Studio as admin and retrying several times (believe it or not, there was a pesky package that updated after trying to do so 4 times!).