Xamarin.Android Xamarin.Forms Error Android Support Library

在Xamarin.Android or Xamarin.Forms的開發過程遭遇Please install package Xamarin.Android.Support.XXXX的編譯錯誤訊息,該如何解決呢?

James Tsai 2016/05/31 12:32:34
1554

主題

Xamarin.Android or Xamarin.Forms的開發過程遭遇Please install package Xamarin.Android.Support.XXXX編譯錯誤訊息,該如何解決?

文章簡介

Xamarin.Android or Xamarin.Forms的開發過程當中,常常會使用到Xamarin.Android.Support的相關Library,但卻會一直遭遇Please install package Xamarin.Android.Support.XXXX(通常是.v4)編譯錯誤訊息?讓本文章的介紹教你解決~

作者

James Tsai

版本/產出日期

V1.0/2016.5.30



1. 前言


在Xamarin.Android or Xamarin.Forms的開發過程當中,常常會使用到Xamarin.Android.Support的相關 Library,但卻會一直遭遇Please install package Xamarin.Android.Support.XXXX(通常是.v4)的相關編譯錯誤訊息,但是看專案上的Nuget的Xamarin.Android.Support這些Library安裝卻是沒有問題的,到底是環境上發生了什麼狀況呢?讓本篇文章告訴你問題的解決方式。


2. 環境準備


Windows 8/8.1/10

Visual Studio 2015 / Xamarin Studio


3. 本文


Xamarin.Android or Xamarin.Forms的開發過程當中遇到Please install package Xamarin.Android.Support.xxxx(通常是.v4)的相關編譯錯誤訊息


Xamarin.Android or Xamarin.Forms的開發時,編譯Android專案時遇到類似以下畫面的編譯錯誤訊息時的問題,一直讓人很頭痛不知該怎麼辦,尤其是環境的Android SDK安裝、Xamarin的安裝等等檢查也都很正常,更是讓人苦惱




使用Xamarin.FormsXamarin.Android專案來重現此問題


Xamarin.FormsXamarin.Android專案當中,通常都已經先引用了Xamarin.FormsNuGet,不過當我們要使用到最新版的Xamarin.FormsNuGet,通常都要自己開啟專案的NuGet封裝管理員來進行升級



然後相關的依存更新會順帶更新Xamarin.Android.Support.v4的相關NuGet更新



相關的NuGet套件更新成功



Xamarin.Android專案重建



可怕的問題來了,將會看到以下的錯誤訊息。



詳細的閱讀錯誤訊息其實可以知道,問題是出在某個Xamarin.Android會用到的.zip當出了問題,不是正確的一個.zip檔。但由於它是一個亂七八糟的編碼,也很難判定它是什麼東西。



而其實理由是這樣的,由於Xamarin.Android要編譯Android.Support的東西時,所需要用到Android SDKm2repository的這些.zip檔時,就會去Google提供Android套件網址https://dl-ssl.google.com/android/repository/android_m2repository_r<Version Number>.zip下載對應的.zip回來。然後命名成一個不知道怎樣編出來的檔名.zip。然後再解壓縮到該資料夾底下供Xamarin.Android編譯使用。而目前知道的對應命名會是如下:

Android

23.3.0 - android_m2repository_r29.zip : 2A3A8A6D6826EF6CC653030E7D695C41.zip
23.2.1 - android_m2repository_r28.zip : 17BE247580748F1EDB72E9F374AA0223.zip
23.1.1.1 - android_m2repository_r25.zip : 0B3F1796C97C707339FB13AE8507AF50.zip
23.1.1 - android_m2repository_r25.zip : 0B3F1796C97C707339FB13AE8507AF50.zip
23.0.1.3 - android_m2repository_r22.zip : 96659D653BDE0FAEDB818170891F2BB0.zip
23.0.1.1 - android_m2repository_r20.zip : 650E58DF02DB1A832386FA4A2DE46B1A.zip
22.2.1 - android_m2repository_r16.zip : 0595E577D19D31708195A83087881EE6.zip
22.2.0 - android_m2repository_r15.zip : F9D66CC0ADC0C3787F4DAE6D494E6BC7.zip
22.1.1.1 - android_m2repository_r14.zip : AB24E1C26FC70B44683752D37075AC06.zip
22.0.0 - android_m2repository_r12.zip : 806FD8EEF161DCEA979C128F27BE5867.zip
21.0.3 - android_m2repository_r10.zip : 1FD832DCC1792D8ACA07FAC3259FC5A9.zip
19.0.1 - support_r19.0.1.zip : CED55A39D1283BB9DC217CAE987067E0.zip

Google

8.4 - google_m2repository_r24.zip : CAA441D76F04E0D57C4110F8A00CDA7A.zip

而會發生上述的編譯錯誤,就在於環境當中的 C:\Users\<Account>\AppData\Local\Xamarin\zips 2A3A8A6D6826EF6CC653030E7D695C41.zip這個檔案很明顯的大小不對的問題。



以至於解壓縮的結果是空空如也。




解決辦法


按照上述的對應表,我們需要的是23.3.0的部分,所以直接下載https://dl-ssl.google.com/android/repository/android_m2repository_r29.zip 來用。



C:\Users\<Account>\AppData\Local\Xamarin\zips原本存在的2A3A8A6D6826EF6CC653030E7D695C41.zip掉。



接著把剛剛下載好的m2repository_r29.zip放到此資料夾中,並重新命名。



重新命名成 2A3A8A6D6826EF6CC653030E7D695C41.zip


回到Visual Studio再次建置該Xamarin.Android專案。



此次編譯會比較久,而且編譯的同時可以用檔案總管看看此資料夾,會發現將相關的壓縮資料解壓縮出來。



編譯成功,錯誤訊息解決。




4. 參考來源


Compilation error (Unzipping failed.Please download https://dl-), since Xamarin Studio v5.0 upgrade

https://forums.xamarin.com/discussion/17349/compilation-error-unzipping-failed-please-download-https-dl-since-xamarin-studio-v5-0-upgrade


解决Xamarin Android墙的问题

http://www.cnblogs.com/qinjin/p/m2repository.html

James Tsai