一、前言
如今跨平台開發層出不窮,而對於.NET而言時下最流行的當然還是Xamarin,不僅僅能夠讓我們在熟悉的Vs下利用C#開發,在對原生態類庫的支持方面也有着非常的好支持,今天我們將會以百度地圖類庫來介紹如何實用第三方原生態類庫。如果需要在Fragment中使用請跳轉到(由網友monosir提供)該篇文章:傳送門
二、正文
筆者采用的是3.0.0的版本,需要以下文件:
baidumapapi_v3_0_0.jar
libBaiduMapSDK_v3_0_0.so
1.新建項目
2.將baidumapapi_v3_0_0.jar賦值到Jars文件夾下
3.修改其屬性
4.如果我們直接生成是會出錯的,所以我們在Metadata.xml中加上一個屬性
內容如下所示
1 <metadata> 2 <attr path="/api/package[@name='com.baidu.mapapi']/class[@name='VersionInfo']/field[@name='VERSION_INFO']" name="name">VersionInfos</attr> 3 </metadata>
如果讀者沒有加這個直接生成會出現一個屬性的名稱跟類的名稱相同,所以我們需要重命名。更多的使用方式可以見如下網站(英文):
http://www.mono-project.com/GAPI#Metadata
5.成功生成
現在我們就綁定好了,剩下我們就需要使用了。
6.創建一個Android應用
7.引用之前的內庫項目
如果出現引用了,但是無法實用其中的方法,可以嘗試直接引用生成的dll
8.打開AssemblyInfo文件將百度地圖的配置寫進去
內容如下所示:
9.將so格式的文件放入項目中
在項目中新建libs文件夾以及armeabi文件夾
10.設置libBaiduMapSDK_v3_0_0.so的生成操作為AndroidNativeLibrary
11.最后在MainActivity.cs中寫入初始代碼
12.最后我們就可以看到百度地圖了(必須是ARM虛擬機,不可以是Intel Atom)
13.關於如何獲取SHA1值,我們可以先下載一個開發android的eclipse工具
打開Window->Preferences后出現一個對話框,緊接着繼續選擇:
接着點擊Browse選擇C:\Users\Administrator\AppData\Local\Xamarin\Mono for Android目錄下的debug.keystore文件之后我們就可以看到SHA1值了,接着就可以去申請授權了。