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

摘要:
官方java调用的原理描述:https://docs.microsoft.com/zh-cn/xamarin/android/platform/java-integration/working-with-jni1.百度正式选择下载SDK 2的功能。创建Android绑定库(Xamarin)3。将SDK中的jar和so文件一起复制到Jars 4。选择EmbeddedJar进行JAR生成操作,选择Embe进行生成操作

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

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

2.创建Android绑定库(Xamarin)

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

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

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

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

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

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

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

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

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

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

免责声明:文章转载自《Xamarin.Form中遇到的调用原生Android JAR的问题(一) 编译过程 命名冲突问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇错误:Type referred to is not an annotation type: CacheFindUbuntu16.04安装rabbitmq(实战)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

zabbix概述

概述 Zabbix 由 Alexei Vladishev 创建,目前由其成立的公司—— Zabbix SIA 积极的持续开发更新维护, 并为用户提供技术支持服务。 Zabbix 是一个企业级分布式开源监控解决方案。 Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。...

手写RPC框架

https://www.bilibili.com/video/av23508597?from=search&seid=6870947260580707913 https://github.com/Rainyn/zg-jack-soa https://blog.csdn.net/roysaliencydetection/article/details...

微信小程序腾讯云配置Tomcat https端口

在个人开发微信小程序时,发布之前要配置微信小程序的域名https及域名的SSL证书的申请及安装 我用的是腾讯云,SSL证书申请好之后,点击下载,解压文件夹,会有如图,根据你要配置的服务器是哪种,我是tomcat配置,这时候腾讯云官方有文档,教你4种不同该怎么去云服务器配置,一步步跟着走就行。一般配置完成后会发现,还是运行不了https的网址,我个人用配置T...

CentOS8安装RabbitMQ3.8.16

之前安装过旧版的RabbitMQ和Erlang,先卸载。 ①:卸载RabbitMQ/sbin/service rabbitmq-server stop yum list | grep rabbitmq yum -y remove rabbitmq-server.noarch rm -rf /var/lib/rabbitmq ②:卸载Erlangyum li...

Nginx 安装及配置、负载均衡https网站及转发后页面js、css等路径找不到问题、更换证书导致问题解决

官网下载nginx:http://nginx.org/en/download.html 安装nginx编译环境:yum install -y gcc-c++ 安装pcre库解析正则:yum install -y pcre pcre-devel 安装zlib库用于压缩解压缩:yum install -y zlib zlib-devel 安装openssl库...

windows环境下的Anaconda安装与OpenCV机器视觉环境搭建

https://blog.csdn.net/iracer/article/details/80498732 本文介绍win7和win10系统下通过Anaconda配置基于python语言的机器视觉编程环境(博主测试了两个系统下的安装基本相同),主要内容包括: Anaconda下载安装OpenCV下载安装测试安装结果本文安装的版本为:Anaconda4.2+...