• Xamarin.Form中遇到的调用原生Android JAR的问题(一) 编译过程 命名冲突问题


     
    官方调用java的原理说明:https://docs.microsoft.com/zh-cn/xamarin/android/platform/java-integration/working-with-jni

    1. 百度官方选择功能下载SDK

    2.创建Android绑定库(Xamarin)

    3.将SDK里的jar和so文件一起复制到Jars中

    4.生成操作JAR选择 EmbeddedJar,so选择EmbeddedNativeLibrary

    5.生成项目,报如下错误

    生成文件位置,需要显示所有文件中查看

    6.在Transforms文件夹的Metadata.xml文件中,添加如下代码,将命名冲突的内容,重新定义名称。

    官方文档:https://docs.microsoft.com/zh-cn/xamarin/android/platform/binding-java-library/customizing-bindings/java-bindings-metadata

    参考文章:https://blog.csdn.net/qq_31403321/article/details/79502182

    1 <metadata>
    2   <attr path="/api/package[@name='com.baidu.location']/class[@name='Address']/field[@name='address']"
    3         name="name">MyAddress</attr>
    4   <attr path="/api/package[@name='com.baidu.mapapi']/class[@name='VersionInfo']/field[@name='VERSION_INFO']"
    5         name="name">MyVersionInfo</attr>
    6   <attr path="/api/package[@name='com.baidu.mapapi.map']/interface[@name='BaiduMap.OnMapStatusChangeListener']/method[@name='onMapStatusChangeStart' and count(parameter)=2 and parameter[1][@type='com.baidu.mapapi.map.MapStatus'] and parameter[2][@type='int']]" name="managedName">OnMapStatusChangeStart2</attr>
    7   <attr path="/api/package[@name='com.baidu.mapapi.search.poi']/interface[@name='OnGetPoiSearchResultListener']/method[@name='onGetPoiDetailResult' and count(parameter)=1 and parameter[1][@type='com.baidu.mapapi.search.poi.PoiDetailSearchResult']]" name="managedName">OnGetPoiDetailResult2</attr>
    8 </metadata>

     7.完成,bin中有生成的dll供Xamarin.Android项目调用。

     很全面的参考文章:https://blog.csdn.net/qq_31403321/article/details/79489078

  • 相关阅读:
    C
    A
    G
    B
    一些新玩意:
    Angular常用功能
    node学习笔记(四)
    node学习笔记(三)
    node学习笔记(二)
    node学习笔记
  • 原文地址:https://www.cnblogs.com/Xamarin-Oz/p/11102499.html
Copyright © 2020-2023  润新知