美文网首页
安卓jar包冲突问题

安卓jar包冲突问题

作者: 辣条少年J | 来源:发表于2020-04-20 21:03 被阅读0次

      前段时间Flutter集成高德的导航功能的时候,开始是使用的插件flutter_amap_plugin,但是发现它的高德sdk版本有点低,而且没有实现输入起始点坐标导航的功能。其它的诸如 如果是自己添加上去,由于它sdk版本比较低,现有的文档已经找不到那个版本的sdk的接口是什么,所以决定自己手动写个导航的插件flutter_navi_plugin。
      由于使用了amap_map_fluttify这个地图插件,它包含了高德地图功能,里面包含了Android_Map3D_SDK_V6.9.2_20190709.jar(下文简称"6.9.jar")包这个库。在写导航插件的时候我在高德官方下载了导航的sdk是AMap3DMap_7.2.1_AMapNavi_7.2.0_20200115.jar(下文简称"7.2.jar")这个jar包,这个jar包包含了地图和定位。这个时候如果同时引用这两个插件的话会引起多定义冲突,因为其实后者包含了前者。
      开始我想的办法是希望能够屏蔽掉7.2.jar里跟6.9里jar相同的包名,网上查了后说的是使用exclude group屏蔽掉相关联的模块,需要放在App住Module里的build.gradle里,像下面这样:

dependencies {
compile (project(':Speech')){
        //解决Gson重复依赖问题,与passport-1.4.2.jar有冲突
        exclude group: 'com.google.code.gson', module: 'gson'       
    }
}

额,试过这种方式,考虑到需要过滤的jar包内容较多,就使用了下面的方式

解决方法

      我还是决定使用7.2.jar这个jar包,然后让amap_map_fluttify依赖flutter_navi_plugin,当然amap里要取消掉对6.9.jar的引用。当然,6.9和7.2的api有些许不同,不过所幸两者版本相差不大。但是一开始我用这种方式amap_map_fluttify始终无法连接到flutter_navi_plugin里的jar包的相关类,经过一段时间后找到原因是由于我对包的引用使用的是compile的引用方式,即compile files('xxx.jar'),这种引用方式外部无法使用,正确的方式是api files('xxx.jar')

compile files('xxx.jar')
//改为
api files('xxx.jar')

由于两个版本的api还是有些许差异,amap_map_fluttify本来实现了很多插件方法,总共有差不多1w多行代码,所以需要改动的地方也很多,不过由于我只用到了地图相关功能,只需改动地图相关的方法其他注释就可。

相关文章

  • 安卓jar包冲突问题

    前段时间Flutter集成高德的导航功能的时候,开始是使用的插件flutter_amap_plugin,但是发现它...

  • 安卓jar包冲突解决

    在项目中尤其是大项目中,经常会引用很多第三发jar,或者lib,就难免出现jar包冲突的现象,一般冲突都会很详细的...

  • 编译生成jar包时,jdk版本兼容问题

    问题 需要生成jar包,提供给安卓编译使用,但是使用的安卓编译工具(buildTools)较低(小于19),不支持...

  • 网易云短信android接入

    想要在安卓中使用HttpClient.jar包,记得不要用外部jar包,安卓自己有,如果用外部的话会产生错误。 想...

  • 大数据小问题

    1 Hadoop Mapreduce 提交YARN jar包冲突问题 最近开发遇到一个jar包冲突的问题, 我们的...

  • 安卓Jar包冲突解决方案

    前言 在安卓项目开发过程中,我们免不了会接触三方SDK的引用开发,比较常见的SDK有基于地图的高德地图SDK,基于...

  • Jar包冲突问题

    倒入jar时不要使用implementation而是使用compileOnly引入进项目中

  • Es的jar以及环境安装以及错误

    1:jar包冲突 jar包冲突:jruby-complete 与 joda-time jar 包冲突。两者中都有o...

  • 解决:Execution failed for task ':a

    问题:由于项目中会引进多个jar包依赖,如果jar包中包括了相同的文件,会导致冲突,需要解决掉冲突的问题才能运行 ...

  • ReactNative开发之IDE

    Atrom Android Stuido 使用安卓模拟器弹出功能菜单 引入jar包 1、将jar包放入项目里的li...

网友评论

      本文标题:安卓jar包冲突问题

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