Flutter爬坑记 - jetified-BaiduLBS_Android.jar重复定义

在使用Flutter开发时,遇到了jetified-BaiduLBS_Android.jar重复定义的问题,尝试了修改gradle版本、混淆设置、排除文件等方法无效。最终发现是百度地图插件版本更新,新版本与旧版本存在冲突。解决方案是将所有相关插件升级到最新版本,避免版本不一致导致的冲突,成功解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


去年用Flutter做了一个APP,有百度地图及其定位功能,Flutter是1.2.2版本的,很久么有更新SDK了。这两天突然新血来潮flutter upgrade了一下,顺便把右下角凡人的gradle upgradle也点了,接下来,舒服了。。。。。工程挂了,各种报错。
报错:
AGPBI: {“kind”:“error”,“text”:"Type com.baidu.a.a.a.a.a is defined
Execution failed for task ‘:app:mergeDebugNativeLibs’.
Could not initialize class org.codehaus.groovy.runtime.InvokerHelper
jetified-BaiduLBS_Android.jar重复定义。。。
等等。。。

最初,以为是升级flutter sdk和gradle之后把混淆打开了,开始研究gradle的机制。弄了半天,无论打开和关闭混淆代码,都无法解决;gradle的版本跟jdk的版本要对应,直接拉满用gradle和jdk最新的版本,Android Studio也搞到最新版本,不行。。。
然后,百度搜到optionConfig里面要exclude一些东西,一边编译一遍根据错误排除各种so文件,asset/xxx.png文件,还是无法解决;
gradle搞到新版本后,用android工程模式可以看到正常的中文build提示了(之前用flutter build都是乱码提示)。搞出jetified-BaiduLBS_Android.jar有两处重复引用导致冲突,又按百度搜到的解决办法,把build.gradle中的dependencies下,加入compileOnly files(‘libs/BaiduLBS_Android.jar’),还是吐了。。。。不行;
快绝望放弃的时候,仔细观察百度地图的插件版本,发现我之前用的是1.0.2版本的,去库里面用同样的关键字搜索,发现最新版本依旧是1.0.2,但有一个红红的uncontinue。难道百度官方放弃flutter插件了?不科学啊,现在flutt

android开发中地图和定位是很多软件不可或缺的内容,这些特色功能也给人们带来了很多方便。定位一般分为三种发方案:即GPS定位、Google网络定位以及基站定位 最简单的手机定位方式当然是通过GPS模块(现在大部分的智能机应该都有了)。GPS方式准确度是最高的,但是它的缺点也非常明显:1,比较耗电;2,绝大部分用户默认不开启GPS模块;3,从GPS模块启动到获取第一次定位数据,可能需要比较长的时间;4,室内几乎无法使用。这其中,缺点2,3都是比较致命的。需要指出的是,GPS走的是卫星通信的通道,在没有网络连接的情况下也能用。 另外一种常见的定位方式是基站定位。大致思路就是采集到手机上的基站ID号(cellid)和其它的一些信息(MNC,MCC,LAC等等),然后通过网络访问一些定位服务,获取并返回对应的经纬度坐标。基站定位的精确度不如GPS,但好处是能够在室内用,只要网络通畅就行。 还有Wifi定位。和基站定位类似,这种方式是通过获取当前所用的wifi的一些信息,然后访问网络上的定位服务以获得经纬度坐标。因为它和基站定位其实都需要使用网络,所以在Android也统称为Network方式。 最后需要解释一点的是AGPS方式。很多人将它和基站定位混为一谈,但其实AGPS的本质仍然是GPS,只是它会使用基站信息对获取GPS进行辅助,然后还能对获取到的GPS结果进行修正,所以AGPS要比传统的GPS更快,准确度略高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值