首页 APP开发 正文内容

UTS 开发 APP,引入高德地图 SDK 冲突,打包报错问题的如何解决?

2024年02月05日 , , , 331

uni-app 中引入原生 SDK 冲突会导致打包失败,看看怎么解决。

无论是 UTS 开发原生插件还是 uni-appx,可能都会碰到 SDK 冲突问题,这种情况会直接导致打包失败。比如插件引入高德 sdk,APP 主工程再勾选 uniapp 的高德地图,打包时会产生冲突,这种情况如何解决?

原因分析

uni-app 的 UTS 框架本身会引入特定版本的地图 SDK,我们自己开发时,也会因为实际的需求需要引入最新版本的 SDK,这时候就导致两个一样的 SDK,无法完成编译。

解决方法

同一个 SDK,需要二选一,只能保留一个。这个限制在原生开发中也是存在。这时候可以参考原生的解决思路,有下面两种方法:

方法1:仅保留 uni-app 高德 SDK

你使用的插件依赖使用 compilerOnly 关键字保持与 uni-app 的德一致。

方法2:精细化确认

依赖的这个高德地图和 uni-app 的高德地图冲突的部分,使用gradle 配置排除规则。

用这种方法就可以避免多次引入一个 SDK,导致打包失败的问题。这种方法不仅适用于高德原生 SDK,同样适用于其他 SDK。