在開發 Xamarin.Forms 時如何避免第一次編譯 Android 平台的 App 時遇上缺少 Xamarin.Android.Support.XXXX 錯誤的問題…
主題: |
在開發Xamarin.Forms時如何避免第一次編譯Android 平台的App時遇上缺少Xamarin.Android.Support.XXXX錯誤的問題… |
文章簡介: |
由於最近越來越多人嘗試著使用 Xamarin.Forms 來開發 App,但常會在第一次編譯 Android 平台上的 App 時遇上"Xamarin.Android.Support.XXXX"之類的錯誤訊息,接著就卡關了,所以來讓本篇文章來引導如何避免此問題吧! |
作者: |
James Tsai |
版本/產出日期: |
V1.0/2016.12.30 |
1. 前言
• 這個問題在2016年五月時就曾經在昕力大學發表類似的解決文章: ”在 Xamarin.Androi d or Xamarin.Forms 的開發過程遭遇 Please install package Xamarin.Android.Support.XXXX 的編譯錯誤訊息,該如何解決呢 ? ”。在該篇文章當中有詳細討論此問題的成因與來由,所以想要詳細了解的人,可以再去閱讀此文章。
• 但由於該篇文章是解說遇到問題時該怎麼解決,而且當時也只有敘述Windows上面的解決方式,所以本篇文章是直接教導怎樣讓無論是在Windows或Mac上,要使用Xamarin.Forms的初心者,在編譯Android平台上的App能夠避免這樣的問題發生。
2. 環境準備
• Windows
• macOS Sierra
• Xamarin 開發環境
3. 本文
前情提要
• 此問題的原因很大一部份都是因為在沒有可靠穩定的網路時(如: 易斷線、頻寬不夠、防火牆遮蔽…等),就常常會造成第一次使用 Xamarin.Forms 的編譯Android 平台的App,或是更新新版Xamarin.Forms 的Nuget Package後就會發生此問題。
• 使用Xamarin.Forms時在編譯Android平台上的App遇上”缺少Xamarin.Android.Support.XXXX錯誤的問題”,若想了解相關問題的成因與解決,請參考下列網址的文章:
在Xamarin.Android or Xamarin.Forms的開發過程遭遇Please install package Xamarin.Android.Support.XXXX的編譯錯誤訊息,該如何解決呢?
https://www.tpisoftware.com/tpu/File/html/201605/20160531122859_f.html
• 目前Xamarin.Forms當中的Android 平台使用的Nuget Package需要對應到Android SDK當中的”android_m2repository_r<版號>.zip”套件,以目前這個時間點Xamarin.Forms的Nuget Package會對應到的是”android_m2repository_r29.zip”,所以請先透過下列網址下載:
android_m2repository_r29.zip:
https://dl-ssl.google.com/android/repository/android_m2repository_r29.zip
並將下載回來的zip檔,改檔名為”2A3A8A6D6826EF6CC653030E7D695C41.zip”
在Windows中第一次使用Xamarin.Forms時避免發生此問題的方式
• 透過檔案總管的網址列直接鍵入”c:\Users\<Your Account>\AppData\Local”,並在Local資料夾底下找尋”Xamarin”資料夾,如果沒有就自己手動建立一個”Xamarin”資料夾,如果有也建議直接刪除已存在的”Xamarin”資料夾再重新建一個,接著再進到這個”Xamarin”資料夾。
PS 由於AppData在Windows裡是個系統隱藏資料夾,無法直接在檔案總管當中瀏覽到,請直接用網址列鍵入位置。
• 在這個空的Xamarin資料夾繼續建立一個叫做”zips”的資料夾,並且將前述的前置作業中所下載變更命名好的”2A3A8A6D6826EF6CC653030E7D695C41.zip”,複製到這個zips資料夾當中,如下圖:
• 接著在Visual Studio建立一個Xamarin.Forms的專案,而當專案本身所使用的Xamarin.Forms的Nuget Package升級到2.2.0.31時,在Android平台編譯時會根據依賴的MonoAndroid Nuget Package版本而用到android_m2repository_r29.zip的部分。當然會更建議是直接將Xamarin.Forms的Nuget Package升級到2.3.3.xxx以後的版本(而在目前這個時間點的最新穩定版是2.3.3.175)。
• 完成後就可以在Visual Studio當中將Xamarin.Forms的專案建置or重建,接著再將Android平台的專案建置or重建。而在這個時候重建的時間會相當久,理由是編譯的過程會先去將剛剛的那個”2A3A8A6D6826EF6CC653030E7D695C41.zip”作解壓到zips這個資料夾的上層資料夾Xamarin當中,並且編排Nuget Package所需對應Android SDK套件,所以會看到在該Xamarin資料夾當中會形成如下圖的呈現結果:
PS 只有第一次使用時會需要這樣,之後的Xamarin.Forms專案在編譯Android的平台App時,就會直接用已經對應好的相關套件內容,所以編譯的速度就會加快了。
• 靜待一段時間後,就會看到Visual Studio告知編譯成功的訊息。
在Mac中第一次使用Xamarin.Forms時避免發生此問題的方式
• 首先打開Mac的終端機,輸入”mkdir -p .local/share/Xamarin/zips” 的指令,會在”/Users/<Your Account>” 底下建立一個叫做”.local”的資料夾然後一直到叫做”zips”資料夾,如下圖結果:
可以透過Finder的”前往”->”前往資料夾”,然後輸入”/Users/<Your Account>/.local”開啟該資料夾的瀏覽。
PS 注意local的前面要有一個”.”。
• 再來就是將前述的前置作業中所下載變更好命名的”2A3A8A6D6826EF6CC653030E7D695C41.zip”檔案,複製到這個zips資料夾當中,如下圖:
• 接著開啟Xamarin Studio當中,建立一個Xamarin.Forms的專案,而當專案本身的Xamarin.Forms的Nuget Package升級到2.2.0.31時,在Android平台編譯時會根據依賴的MonoAndroid Nuget Package版本而用到android_m2repository_r29.zip的部分。當然會更建議是直接將Xamarin.Forms的Nuget Package升級到2.3.3.xxx以後的版本(而在目前這個時間點的最新穩定版是2.3.3.175)。
• 完成後就可以在Xamarin Studio當中將Xamarin.Forms的專案建置or重建,接著再將Android平台的專案建置or重建。而在這個時候重建的時間會相當久,理由是編譯的過程會先去將剛剛的那個”2A3A8A6D6826EF6CC653030E7D695C41.zip”作解壓到zips這個資料夾的上層資料夾Xamarin當中,並且編排Nuget Package所需對應Android SDK套件,所以會看到在該Xamarin資料夾當中會形成如下圖的呈現結果:
PS 只有第一次使用時會需要這樣,之後的Xamarin.Forms專案在編譯Android的平台App時,就會直接用已經對應好的相關套件內容,所以編譯的速度就會加快了。
• 靜待一段時間後,就會看到Xamarin Studio告知編譯成功的訊息。
4. 參考來源
• 在Xamarin.Android or Xamarin.Forms的開發過程遭遇Please install package Xamarin.Android.Support.XXXX的編譯錯誤訊息,該如何解決呢?:
https://www.tpisoftware.com/tpu/File/html/201605/20160531122859_f.html
• Linux 檔案與目錄管理:
http://linux.vbird.org/linux_basic/0220filemanager.php