一、前言
如今跨平台开发层出不穷,而对于.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:UsersAdministratorAppDataLocalXamarinMono for Android目录下的debug.keystore文件之后我们就可以看到SHA1值了,接着就可以去申请授权了。