Today I created a new Xamarin Android project, and I wanted to test out Material Design on my phone (still runs 4.4.2) using the revamped AppCompat v4 library. To my disappointment I was unable to install the AppCompat NuGet package:
PM> Install-Package Xamarin.Android.Support.v7.AppCompat
Install-Package : Could not install package 'Xamarin.Android.Support.v7.AppCompat 126.96.36.199'. You are trying to install this package into a project that targets 'MonoAndroid,Version=v2.2', but the package does not contain any assembly references or content files
that are compatible with that framework. For more information, contact the package author.
Turns out this can be a common problem when using Visual Studio and the “Compile using Android version” is not explicitly set. The default in my case is “Use Latest Platform”. What this does is making VS to add the proper TargetFrameworkVersion property in the .csproj file. It seems that sometimes this does not get set at all when creating a project and “Use Latest Platform” is set. Weird. In any case, setting this explicitly fixes things and NuGet understands which version of MonoAndroid to use. The default is 2.2, but we want something newer, preferably Android Version 5.
So change this:
Reload the project when asked by Visual Studio and install the package again!
Thanks to the awesome community over at the Xamarin Forums for being on top of this already — check out the post here.
UPDATE: Haha, never mind the blurred out assembly name in the first image. Don’t know why I did that 😉