好丫小子之前发布过百度地图android SDK的mono for android绑定dll,许多朋友看过之后说想理解是怎么绑定的,现我把绑定的代码发出来。

针对2.1.2版本百度地图android sdk

Metadata.xml

<metadata>
<remove-node path="/api/package[@name='com.baidu.mapapi.cloud']/class[string-length (@name) = 1]" />
<remove-node path="/api/package[@name='com.baidu.mapapi.search']/class[@name = 'PlaceCaterActivity']" />
<remove-node path="/api/package[@name='com.baidu.platform.comapi.map']/class[string-length (@name) = 1 and @name!='u' and @name!='z']" />
<attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='u']" name="obfuscated">false</attr>
<attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='u']" name="managedName">Overlay</attr>
<attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='z']" name="obfuscated">false</attr>
<attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='z']" name="managedName">TransitOverlay</attr>
<attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='z']" name="extends">java.lang.Object</attr>
<attr path="/api/package[@name='com.baidu.vi']/class[@name='d']" name="obfuscated">false</attr> <attr path="/api/package[@name='com.baidu.platform.comjni.permissioncheck']" name="managedName">Com.Baidu.Platform.Comjni._PermissionCheck</attr>
</metadata>

在Additions目录中新增一个Fx.cs文件,文件内代码如下

using System;
using System.Collections.Generic;
using System.Text;
using Object = Java.Lang.Object; namespace Com.Baidu.Mapapi.Map
{
public partial class ItemizedOverlay
{
public int Compare(Object object1, Object object2)
{
return object1.GetHashCode() - object2.GetHashCode();
}
}
}

这部分代码主要是修正ItemizedOverlay类没实现基类的public int Compare(Object object1, Object object2)方法的错误

针对2.1.3版本百度地图android sdk

Metadata.xml

<metadata>
<!--
This sample removes the class: android.support.v4.content.AsyncTaskLoader.LoadTask:
<remove-node path="/api/package[@name='android.support.v4.content']/class[@name='AsyncTaskLoader.LoadTask']" /> This sample removes the method: android.support.v4.content.CursorLoader.loadInBackground:
<remove-node path="/api/package[@name='android.support.v4.content']/class[@name='CursorLoader']/method[@name='loadInBackground']" />
-->
<remove-node path="/api/package[@name='com.baidu.mapapi.cloud']/class[string-length (@name) = 1]" />
<remove-node path="/api/package[@name='com.baidu.mapapi.search']/class[@name = 'PlaceCaterActivity']" />
<remove-node path="/api/package[@name='com.baidu.vi']/class[@name = 'VDeviceAPI']" />
<remove-node path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name = 'd']" />
<remove-node path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name = 'y']" /> <attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='v']" name="obfuscated">false</attr>
<attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='v']" name="managedName">Overlay</attr> <attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='A']" name="obfuscated">false</attr>
<attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='A']" name="managedName">TransitOverlay</attr>
<attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='A']" name="extends">java.lang.Object</attr> <attr path="/api/package[@name='com.baidu.platform.comjni.permissioncheck']" name="managedName">Com.Baidu.Platform.Comjni._PermissionCheck</attr>
</metadata>

同样,在Additions增加以上Fx.cs文件及代码

具体代码请见
http://code.taobao.org/p/monodriodbindings/src/
用svn导出
使用方法见我之前的文章
Mono For Android中完美使用百度地图SDK(v2.1.2&v2.1.3)

转载自http://mdev.iquan.net/mono-for-android-baidumap-binding/

mono for android 百度map binding项目(转)的更多相关文章

  1. Mono For Android中完美使用百度地图SDK(v2.1.2&v2.1.3)(转)

    在Xamarin Mono For Android的开发中,如果要使用第三方的jar,就必须进行绑定.通过创建Java Bindings Library项目来自动生成C#到java的代码映射代码,最终 ...

  2. 【月入41万】Mono For Android中使用百度地图SDK

    借助于Mono For Android技术,.Net开发者也可以使用自己熟悉的C#语言以及.Net来开发Android应用.由于Mono For Android把Android SDK中绝大部分类库都 ...

  3. Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图

      标签: Android百度地图API Key  分类: Android 百度地图开发(2)    最近自己想研究下地图,本来想研究google Map,但是申请API key比较坑爹,于是从百度地 ...

  4. Mono For Android的项目发布

    Mono for Android的发布步骤: 1.选择项目名称鼠标右键,选择Options选项. 2.弹出工程选项框,选择Android Build,勾选 Supported ABIS里面的所有项. ...

  5. Xamarin Mono For Android 4.6.07004 完整离线安装破解版(C#开发Android、IOS工具)

      Xamarin是由Miguel de Icaza成立的一家新的独立公司,目的是给Mono一个继续奋斗的机会.Mono for Android (原名:MonoDroid)可以让开发人员使用 Mic ...

  6. (6)Xamarin.android google map v2

    原文 Xamarin.android google map v2 Google Map v1已经在2013年的3月开始停止支持了,目前若要在你的Android手机上使用到Google Map,就必须要 ...

  7. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

  8. mono for android学习过程系列教程(1)

    直接进入主题,关于mono for android的学习,首先配置好环境,如何配置环境,度娘谷歌一大堆,记得使用破解版. 我自己是百度“黑马四期”传智播客的视频,里面有破解版开发环境的软件. 今天直接 ...

  9. Android百度地图

        帖子   热搜: 二维码 聊天 二维码扫描 传感器 游戏 定位 手势绘图 小项目 相框 绘图 涂鸦 拨打电话 记事本 定时器 通话记录 短信群发 listview 音乐播放器 项目例子 百度地 ...

随机推荐

  1. pycharm控制台出现python编译器的编辑功能

    一.最近研究了下python,然后昨天发现新建项目后,出现如图的输入状况(Ctrl+Alt+F10) 二 二.更改方式 (1)点开如图位置,进入编辑模式 (2)将如图位置的√去掉就好了

  2. CentOS 6.6 MySQL 8.0详细安装步骤

    1.备份服务器上MySQL数据库 [root@localhost ] # mysqldump -h localhost -u root -proot --databases Surpass --rou ...

  3. Geronimo 叛逆者: 使用集成软件包:Codehaus 的 Woodstox(转载)

    XML 解析器通常是高性能.健壮应用程序的关键.传统的 XML 解析技术包括文档对象模型(Document Object Model,DOM)和 Simple API for XML (SAX).现在 ...

  4. Android-自定义开关(ViewGroup版)

    虽然实现自定义开关,通常情况下都是继承View,比较合理方便快捷一些 但是我今天想去继承ViewGroup来实现自定义开关来玩玩 效果图: 布局代码: <!-- 自定义开关ViewGroup版 ...

  5. .NET框架源码解读之SSCLI的调试支持

    阅读源码一个比较快的手段就是在调试器里阅读,这样可以在实际运行SSCLI的过程中,通过堆栈跟踪的方式查看完整的程序执行路径. 当在SSCLI环境里执行一个托管程序的时候,堆栈上通常有托管和非托管代码同 ...

  6. C#基础笔记(第十九天)

    1.CSS 层叠样式表 对HTML的补充实现网页内容和页面效果的彻底分离1.内联样式表(在标签内设置元素的样式)<p style="background:red; font-size: ...

  7. Java并发之ReentrantLock详解

    一.入题 ReentrantLock是Java并发包中互斥锁,它有公平锁和非公平锁两种实现方式,以lock()为例,其使用方式为: ReentrantLock takeLock = new Reent ...

  8. python网络编程--线程的方法,线程池

    一.线程的其他方法(Thread其他属性和方法) ident() 获取线程id Thread实例对象的方法 isAlive() 设置线程名 getName() 返回线程名 setName() 设置线程 ...

  9. RPC 简单小试

    由于经常被抓取文章内容,在此附上博客文章网址:,偶尔会更新某些出错的数据或文字,建议到我博客地址 :  --> 点击这里 RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器 ...

  10. [Objective-C语言教程]错误处理(22)

    在Objective-C编程中,错误处理由Foundation框架中提供的NSError类提供处理. 与仅使用错误代码或错误字符串相比,NSError对象封装了更丰富且更具可扩展性的错误信息. NSE ...