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->AndroidApplication 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可以让应用项目使用。
在VisualStudio建立Xamarin.Android专案与BindingsLibrary(Android)专案
• 在新增C#项目的模板当中,选到Xamarin.Android的项目模板,这边采用默认名称App1,接着点选确定。
• 接着在方案总管当中,找到新增好的方案档上右键单击选单,新增一个新的专案。
• 在项目模板当中,选到BindingsLibrary(Android)的模板后,将此项目取名为MyBindingsClassLibrary后,点选确定。
• 新增完成后在方案总管当中的呈现。
• 在新增好的BindingsLibrary项目当中,找到jar文件夹在上面右键选单,选到加入->现有项目。
• 选到刚刚在前一步骤建立的Jar档。
• 加入后在项目当中呈现状况。
• 调整该Jar文件属性当中的建置动作(Build Action)为EmbeddedJar、EmbeddedJar、EmbeddedJar。(很重要所以说三次)
• 在MyBindingsClassLibrary的专案档上右键选单,点选建置。
将AndroidClass 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
转载自:昕力大学