You may run into issues with downloading the m2repository
when referencing a NuGet package of the Android Support Libraries / Google Play Services.
Example error:
Download failed. Please download https://dl-ssl.google.com/android/repository/android_m2repository_r25.zip and put it to the C:\Users\[Username]\AppData\Local\Xamarin\{SUPPORT LIBRARY NAME}\{VERSION NUMBER} directory."
Mac Directory: /Users/[Username]/.local/share/Xamarin/
Windows Directory: C:\Users\[Username]\AppData\Local\Xamarin\
This example will be using Windows paths. This can be applied to either OS.
-
Given the following:
C:\Users\[Username]\AppData\Local\Xamarin\
-
A folder for each of the respective Android Support Libraries / Google Play Services will be shown.
- Each library should have a collection of versions:
Note: In this example I'm showing all of the versions of Android.Support.v4
- We will then investigate the respective version we're interested in. We should see two folders inside,
content
andembedded
:
content
- Contains them2repository
embedded
- Contains the respective.aar
contents
- Delete the versioned library folder that is giving you errors:
Mac Directory: /Users/[Username]/.local/share/Xamarin/{SUPPORT LIBRARY NAME}/{VERSION NUMBER}
Windows Directory: C:\Users\[Username]\AppData\Local\Xamarin\{SUPPORT LIBRARY NAME}\{VERSION NUMBER}
- Rebuild your project (Which will kickoff a Build Task to re-download the library).
Note: You may already have this zip in your directory, but it could be partial or become corrupted. Please ensure you fully wipe the existing libraries as mentioned above.
- Delete the versioned library folder that is giving you errors:
Mac Directory: /Users/[Username]/.local/share/Xamarin/{SUPPORT LIBRARY NAME}/{VERSION NUMBER}
Windows Directory: C:\Users\[Username]\AppData\Local\Xamarin\{SUPPORT LIBRARY NAME}\{VERSION NUMBER}
Note: You may already have this zip in your directory, but it could be partial or become corrupted. Please ensure you fully wipe the existing libraries as mentioned above.
There are two steps to manually fixing this error.
- Adding the
m2repository
folder to the/content
folder. - Adding the respective Android Support Library / Google Play Services
.aar
contents to the/embedded
folder.
Download the respective m2repository
from google.
https://dl-ssl.google.com/android/repository/android_m2repository_r25.zip
Note: This version number will vary based on your error message.
- Extract that .zip to any directory. There should now be a
android_m2repository_r25
folder. - Inside the
android_m2repository_r25
folder, we have am2repository
folder. - Place the
m2repository
into the{VERSION NUMBER}/content
folder
- Inside the
m2repository
folder, there is an .aar for the support library to be resolved. It can be found in thecom\android\support
directory:
Example:
m2repository\com\android\support
- There should be a
support-v4\{VERSION NUMBER}
which will contain the.aar
file. - Extract the
.aar
and put the contents into theembedded
folder.
Example:
m2repository\com\android\support\support-v4\23.1.1\support-v4-23.1.1
will contain items such as aaapt
,aidl
,assets
,libs
,res
,AndroidManifest.xml
,annotations.zip
, andclasses.jar
.- Place all of the contents into the
{VERSION NUMBER}/embedded
folder.
- Get the URL of the missing m2repository download
- Use a MD5 hash on the download URL
- Rename the file to {MD5HASH}.zip (Where MD5HASH is the hashed download URL)
- Place the new hashed .zip file in your Xamarin\zips directory