如何在Xamarin中引用原生的AndroidClassLibrary所產生出來的Jar檔
主題: |
如何在Xamarin中引用原生的AndroidClassLibrary所產生出來的Jar檔 |
文章簡介: |
透過此篇文章步驟式的解說,你將能清楚的知道如何在Visual Studio的Xamarin.Android專案當中,引用是透過Eclipse建立原生的AndroidClassLibrary後所產生出來Jar檔。 |
作者: |
James Tsai |
版本/產出日期: |
V1.0/2015.09.24 |
1. 前言
• 常常會遇到有人在從Android原生開發(Java)轉移到Xamarin.Android開發時,有需要將過去開發好的Android Class Library直接匯入到Xamarin.Android底下使用,讓專案可以更加快速的完成。
• 在昕力大學之前的Xamarin與行動開發相關文章 中,有過一篇的介紹是相當類似的主題,不過Ben前輩的介紹主軸是在Xamarin Studio跟Mac上操作,要套用到Visual Studio跟Windows上時,其過程常常會讓人有點困惑,所以再透過本篇文章詳細的介紹一下其步驟,讓大家更能夠掌握其中的訣竅。
2. 環境準備
• Windows 8/8.1/10
• Eclipse with ADT
• Visual Studio 2015
3. 本文
在Eclipse中製作Android Class Library的jar檔
• 首先我們先利用Eclipse建立一個Android Class Library的Project。所以我們在Eclipse當中,File->New->Android Application Project。
• 取名為AndroidClassLibraryTest後點選Next。
• 在New Android Application的對話窗中,取消前兩項的勾選,並且勾選Mack this project as a Libarary後,點選Finish。
• 專案建立完成後的專案長相。
• 接著在專案的src資料夾下點選右鍵,選單當中New->Package,來建立該ClassLibrary的程式所在的Package。
• 將此Package命名為 com.example.androidclasslibrarytest後,點選Finish。
• 新增完成後在此專案當中的呈現。
• 接著在這個Package底下繼續增加類別程式碼檔。在Package上右鍵選單中,點選New->Class。
• 接著將這個類別命名為MyMathCalc,點選Finish。
• 專案建立完成後的專案長相。
• 完成後繼續增加點程式碼,在這個類別當中,我增加了兩個靜態方法,供之後引用的專案可以直接呼叫。
• 接著直接在專案上右鍵選單,點選Build Project。眼尖的人應該會看到一閃即過的視窗。
• 然後展開專案當中的bin資料夾,應該就可以看到我們終於製作出androidclasslibrarytest.jar可以讓應用專案使用。
在Visual Studio建立Xamarin.Android專案與BindingsLibrary(Android)專案
• 在新增C#專案的範本當中,選到Xamarin.Android的專案範本,這邊採用預設名稱App1,接著點選確定。
• 接著在方案總管當中,找到新增好的方案檔上按右鍵選單,新增一個新的專案。
• 在專案範本當中,選到BindingsLibrary(Android)的範本後,將此專案取名為MyBindingsClassLibrary後,點選確定。
• 新增完成後在方案總管當中的呈現。
• 在新增好的BindingsLibrary專案當中,找到jar資料夾在上面右鍵選單,選到加入->現有項目。
• 選到剛剛在前一步驟建立的Jar檔。
• 加入後在專案當中呈現狀況。
• 調整該Jar檔屬性當中的建置動作(Build Action)為EmbeddedJar、EmbeddedJar、EmbeddedJar。(很重要所以說三次)
• 在MyBindingsClassLibrary的專案檔上右鍵選單,點選建置。
將Android Class Library的jar檔Binding到Xamarin.Android專案中
• 回到App1專案檔的右鍵選單,點選加入參考。
• 在參考管理員對話視窗中,勾選方案中的”MyBindingsClassLibrary”專案後,點選確定。
• 加入參考完成後,在方案總管當中的呈現結果。
• 接著我們打開App1專案當中的MainActivity.cs檔,來添加一些測試的程式碼。
• 接著在程式碼當中引用之前我們在Eclipse時所製作ClassLibrary時所設計的Package名稱,而在C#當中Package名稱就變成Namespace了。
• 在Button的Click當中增加一些測試的程式碼。
測試結果
點選編譯執行後,在模擬器當中點選按鈕,Toast訊息出現顯示sum:50,gcd:2。
4. 參考來源
• .jar android library import into Xamarin project
http://stackoverflow.com/questions/22943866/jar-android-library-import-into-xamarin-project
• Binding a Java Library
http ://developer.xamarin.com/guides/android/advanced_topics/java_integration_overview/binding_a_java_libary_(.jar)/
• Create jar for android project in eclipse
http ://stackoverflow.com/questions/11288622/create-jar-for-android-project-in-eclipse