XamarinAndroid调用百度地图SDK中的问题

总体上------https://blog.csdn.net/qq_31403321/article/details/79489078------这篇文章很好。

然后下面是一些小的细节问题的解决方法。

申请AK

这里遇到的问题是有两个项目不会填写。

错误1

生成绑定类库的过程中,发现错误------“VersionInfo”:成员名不能与他们的封闭类型相同。

  • 首先如何找到这个错误。

  • 错误原因

原java代码,类名是VersionInfo,字段名是VERSION_INFO,有大小写和下划线的区分。

现自动生成的C#代码,只认大驼峰命名规范,两个都给改成VersionInfo了,这样就重名了。

  • 修改的方法

这里修改的方式是在metadata.xml中添加代码。

添加的代码和含义如下。

错误2

生成绑定类库的过程中,发现错误------BaiduMap.MapStatusChangeStartEventArgs已经包含“po”的定义。

  • 找到错误

C#这边发现,BaiduMap这个类中,有两个内部类重名都叫MapStatusChangeStart,然后两个类里都有变量p0。

java这边发现,MapStatusChangeStart方法,原来包含在onMapStatusChangeListener接口中。

有两个方法都叫MapStatusChangeStart,但是参数不一样。

  • 错误原因

在自动生成的过程中,C#这边会把原来java中的onXXXListener中的方法,自动转为一个XXXEventHandler和一个XXXEventArgs。

一个Listener里面可以放多个方法,方法重载当然也可以。

但是委托的名字是不能重复的。

一句话,Listener接口转委托后,出现了重名委托。

  • 修改方法

要做的是,这两个同名的方法,其中一个要改名,这样就不会生成同名委托了。用到的语法还是上面那个。

原文地址:https://www.cnblogs.com/fabao/p/12244774.html