如何在Xamarin中引用原生的AndroidClassLibrary所產生出來的Jar檔

James Tsai 2015/09/25 14:49:12
690

主題

如何在Xamarin引用原生的AndroidClassLibrary所產生出來的Jar

文章簡介

透過此篇文章步驟式的解說,你將能清楚的知道如何Visual StudioXamarin.Android專案當中,引用透過Eclipse建立原生AndroidClassLibrary後所產生出來Jar

作者

James Tsai

版本/產出日期

V1.0/2015.09.24

1. 前言

2. 環境準備

3. 本文

4. 參考來源


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 Libraryjar

首先我們先利用Eclipse建立一個Android Class LibraryProject所以我們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)EmbeddedJarEmbeddedJarEmbeddedJar(很重要所以說三次)


MyBindingsClassLibrary的專案檔上右鍵選單,點選建置。


Android Class LibraryjarBindingXamarin.Android專案中

回到App1專案檔右鍵選單,點選加入參考


在參考管理員對話視窗中,勾選方案中MyBindingsClassLibrary專案後,點選確定。



加入參考完成後,在方案總管當中的呈現結果。



接著我們打開App1專案當中的MainActivity.cs檔,來添加一些測試的程式碼。


接著在程式碼當中引用之前我們在Eclipse時所製作ClassLibrary時所設計的Package名稱,而在C#當中Package名稱就變成Namespace了。


ButtonClick當中增加一些測試的程式碼。



測試結果

點選編譯執行後,在模擬器當中點選按鈕,Toast訊息出現顯示sum:50gcd: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

James Tsai