长方体移动师
长方体移动师
  • 发布:2021-08-12 21:40
  • 更新:2022-09-20 16:26
  • 阅读:2670

原生插件与HBuilderX内置模块使用的库冲突

分类:uni-app

本地原生插件与HBuilderX内置模块使用的库冲突:

在本地插件 /nativeplugins/插件/package.json 中增加 excludeDependencies 配置,示例如下:

{  
    "name": "test-plugin",  
    "_dp_type": "nativeplugin",  
    "_dp_nativeplugin": {  
        "android": {  
            // 可选,需要排除的HX内置模块依赖库名称  
            "excludeDependencies": ["alipaysdk-noutdid-15.8.03.210428205839.aar"]  
        }  
    }  
}

这样在打包时,就可以不打包这个依赖的库。比如代码示例中:原生插件中的 alipaysdkmanifest.json 中的 APP模块配置[支付宝支付] 冲突。

云端插件与HBuilderX内置模块使用的库冲突:

如果插件中包含的 jar/aar 依赖库,与 其它插件 或 HBuilderX内置模块存在冲突,可以配置插件中冲突的 jar/aar 库不参与编译打包来解决冲突。 比如 插件A 中使用的 alipaysdk-noutdid-15.8.03.210428205839.aar 与其它库冲突,可以在 uni-app 项目的 _nativeplugins/插件A/ 目录(云端插件需要手动创建目录)中创建 android-exclude.txt 文件,文件内容如下:

alipaysdk-noutdid-15.8.03.210428205839.aar

平台依赖库冲突如何解决?

原生插件 jar 冲突:

假如在打包时,出现了 jar 包冲突,那么可以做一下步骤:

  1. 在 uni-app项目的 nativeplugins/插件A/ 目录(云端插件需要手动创建目录)中创建 android-exclude.txt 文件。具体内容可以参考 平台依赖库冲突如何解决?
  2. 创建成功后,打包还是出现了 jar 包冲突,那么表示这个 jar 不在这个原生插件包的 libs 文件夹里面,而在插件包中所依赖的 arr 包里,这就只能联系开发者了。
  3. 如果是自己开发的插件,那么就不需要把 jar 打入 arr 包中,而在 原生插件包中 增加 libs 的方式引用;或者使用maven方式引入jar,再对齐进行混淆。
0 关注 分享

要回复文章请先登录注册

长方体移动师

长方体移动师 (作者)

ヽ( ̄ω ̄( ̄ω ̄〃)ゝ
2022-09-20 16:26
味

排除alicloud-android-utdid- 2.6.0.jar无效
2022-09-02 09:43
8***@qq.com

8***@qq.com

排除 amap-libs-release.aar 怎么无效呢?
2022-01-02 16:54