[Xamarin.Android]如何引用JAR檔案 (转帖)

时间:2024-10-03 23:03:14

這個範例是如何在Xamarin.Android中去使用一個我們自行在開發的JAR檔案.

主要會執行的步驟如下

1. 在Xamarin建立一個Android Java Bindings Library 專案

2. 加入自行開發的JAR檔案到這個專案裡面

3. 在Xamarin.Android專案中參考Android Java Bindings Library 專案

1. 寫一個Java 程式並且把他包裝成JAR檔案

1.1 撰寫以下程式碼並且儲存副檔名為java的檔案

package com.xamarin.testbinding;public class test{

public String method(){

return "Hello jar";

}

}

1.2 在終端機下用Javac指令來編譯 test.java

編譯完成會產生出一個test.class檔案

1.3 建立一個Manifest.mf檔案.

手動建立一個副檔名為mf的Manifest.mf檔案.接著開啟這個檔案編輯它

在檔案中的第一行宣告這個JAR檔的進入點是由那隻程式(class檔案)來進入

這邊我們輸入 Main-Class: com.xamarin.testbinding.test

[Xamarin.Android]如何引用JAR檔案 (转帖)

1.4 將test.Class檔案複製到com.xamarin.testbinding 資料夾下

在目前所在的目錄下建立底下的資料夾結構,com>xamarin>testbinding

然後將test.class拷貝到testbinding資料夾下

[Xamarin.Android]如何引用JAR檔案 (转帖)

1.5 使用JAR指令把test.class打包成JAR檔案

在終端機介面下執行

jar cvfm testJ.jar manifest.mf ./com/xamarin/testbinding/test.class

把test.class打包成JAR檔案

[Xamarin.Android]如何引用JAR檔案 (转帖)

2. 新建Android Java Bindings Library

2.1 建立Android Java Bindings Library檔案

New >> Android >> Android Java Bindings Library

[Xamarin.Android]如何引用JAR檔案 (转帖)

2.2 把JAR檔案加入到目前專案

2.2.1在專案的Jars資料夾按下滑鼠右鍵>>添加>>添加檔案

把JAR檔加入這個專案

[Xamarin.Android]如何引用JAR檔案 (转帖)

[Xamarin.Android]如何引用JAR檔案 (转帖)

2.2.2 在被加入的JAR檔的屬性視窗裡面的建置動作選擇 [EmbeddedJar]

[Xamarin.Android]如何引用JAR檔案 (转帖)

2.3 上述動作都完成後編譯這個專案

3. 新增Xamarin.Android專案

3.1 建立Android 專案

New >> Android >> Android Application

[Xamarin.Android]如何引用JAR檔案 (转帖)

 

3.2 把Android Java Bindings Library加入參考

[Xamarin.Android]如何引用JAR檔案 (转帖)

[Xamarin.Android]如何引用JAR檔案 (转帖)

 

3.3 接著在你的Android專案中using Com.Xamarin.TestBinding名稱空間

在參照名稱空間時要特別注意,Xamarin會自動把你的名稱空間的每一個字母的第一個英文轉換成大寫. 也就是原本我們在JAR檔案裏面宣告的 package com.xamarin.testbinding;

在Xamarin.Android要使用這個名稱空間時,我們必須要輸入成Com.Xamarin.Testbinding

而類別名稱也會變成第一個字母為大寫.

[Xamarin.Android]如何引用JAR檔案 (转帖)

3.4 此時就可以在Xamarin.Android專案中引用JAR檔案裡的類別

[Xamarin.Android]如何引用JAR檔案 (转帖)

相關資料參考網站:

Binding a Java Library (.jar)

http://docs.xamarin.com/guides/android/advanced_topics/java_integration_overview/binding_a_java_library_(.jar)