美文网首页
xamarin 绑定高德地图SDK----1

xamarin 绑定高德地图SDK----1

作者: gubird | 来源:发表于2022-02-06 11:32 被阅读0次

    在开发过程中会遇到各种第三方原生库。这些库有jar包或者aar包。这次通过xamarin 绑定jar包的方式,将第三方库“高德地图SDK”引入到项目中。如下图


    jar.jpg

    将下载的jar包复制到


    image.png
    右键生成。当然事情不可能都是一帆风顺的,不过还好错误不是很多
    image.png

    通过错误提示,发现错误都是一个类型--数据类型不匹配。这样解决一个问题,其他就同理了。我们将第一个错误点击进入代码,找到实现CreateFromPacel的方法


    image.png
    请注意方法头部的注释,这个是关键点,这个就是java代码路径,我们将path后面的的代码复制
    打开Metadata.xml,添加如下代码
    <attr path="/api/package[@name='com.amap.api.maps2d']/class[@name='AMapOptionsCreator']/method[@name='createFromParcel' and count(parameter)=1 and parameter[1][@type='android.os.Parcel']]" name="managedReturn">Java.Lang.Object</attr>
    
    image.png

    注意,返回类型不匹配,需要将name的值设置‘managedReturn’ 并将attr包含的值改为需要对应的类型即可。再次生成


    image.png

    错误数减1.其他就同理了。
    下面附上更改后的

    <attr path="/api/package[@name='com.amap.api.maps2d.model']/class[@name='MyLocationStyleCreator']/method[@name='newArray' and count(parameter)=1 and parameter[1][@type='int']]" name="managedReturn">Java.Lang.Object[]</attr>
      <attr path="/api/package[@name='com.amap.api.maps2d.model']/class[@name='MyLocationStyleCreator']/method[@name='createFromParcel' and count(parameter)=1 and parameter[1][@type='android.os.Parcel']]" name="managedReturn">Java.Lang.Object</attr>
    
      <attr path="/api/package[@name='com.amap.api.maps2d.model']/class[@name='TextOptionsCreator']/method[@name='newArray' and count(parameter)=1 and parameter[1][@type='int']]" name="managedReturn">Java.Lang.Object[]</attr>
      <attr path="/api/package[@name='com.amap.api.maps2d.model']/class[@name='TextOptionsCreator']/method[@name='createFromParcel' and count(parameter)=1 and parameter[1][@type='android.os.Parcel']]" name="managedReturn">Java.Lang.Object</attr>
    
      <attr path="/api/package[@name='com.amap.api.maps2d']/class[@name='AMapOptionsCreator']/method[@name='newArray' and count(parameter)=1 and parameter[1][@type='int']]" name="managedReturn">Java.Lang.Object[]</attr>
      <attr path="/api/package[@name='com.amap.api.maps2d']/class[@name='AMapOptionsCreator']/method[@name='createFromParcel' and count(parameter)=1 and parameter[1][@type='android.os.Parcel']]" name="managedReturn">Java.Lang.Object</attr>
      
    

    至此大工搞成,把编译好后的dll导入你的项目,尽情玩耍吧。

    相关文章

      网友评论

          本文标题:xamarin 绑定高德地图SDK----1

          本文链接:https://www.haomeiwen.com/subject/gtkukrtx.html