uni-app打包时提示App原生语言插件或uts插件依赖的三方库存在冲突

发布于 1周前 作者 htzhanglong 来自 Uni-App

uni-app打包时提示App原生语言插件或uts插件依赖的三方库存在冲突

问题描述

  • What went wrong:

    Execution failed for task ‘:app:checkReleaseDuplicateClasses’.
    A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
    Duplicate class uni.dcloud.io.uniplugin_module.BuildConfig found in modules HXJBLEUniPlugin.aar -> jetified-HXJBLEUniPlugin-runtime (HXJBLEUniPlugin.aar) and uniplugin_module-release.aar -> jetified-uniplugin_module-release-runtime (uniplugin_module-release.aar)

我去uni.dcloud.io.uniplugin_module.BuildConfig 把BuildConfig删除后,再次打包依旧不可以。请问这种依赖包冲突都是怎么解决的呀


1 回复

在处理uni-app打包时提示的App原生语言插件或uts插件依赖的三方库冲突问题时,通常是因为不同插件或库之间引用了相同但版本不兼容的依赖库。以下是一个可能的解决方案,包括一些代码示例和步骤,帮助你检查和解决这类问题。

步骤一:定位冲突

首先,你需要确定哪些库或插件之间存在冲突。可以通过查看package.json和各个插件的READMEdocs文档来了解它们依赖的库。

步骤二:使用npm/yarn解决依赖版本冲突

如果你确定了冲突的库,可以尝试使用npm或yarn的--legacy-peer-deps选项来安装依赖,这可以绕过peer依赖的版本冲突。

# 使用npm安装依赖,忽略peer依赖版本冲突
npm install --legacy-peer-deps

# 或者使用yarn安装依赖,忽略peer依赖版本冲突
yarn install --ignore-engines

步骤三:手动解决依赖冲突

如果上述方法未能解决问题,你可能需要手动解决依赖冲突。这通常涉及到以下几个步骤:

  1. 升级/降级库:检查并升级或降级引起冲突的库到兼容版本。
// 在package.json中手动修改依赖版本
"dependencies": {
  "conflicting-library": "^1.2.3"  // 修改为你需要的版本
}
  1. 使用别名:如果使用的是Webpack,可以通过配置resolve.alias来为冲突的库指定不同的别名。
// webpack.config.js
module.exports = {
  resolve: {
    alias: {
      'conflicting-library$': path.resolve(__dirname, 'node_modules/conflicting-library-v1')
    }
  }
};

步骤四:清理node_modules和缓存

在修改依赖后,确保清理旧的node_modules和缓存,然后重新安装依赖。

rm -rf node_modules
npm cache clean --force
npm install

# 或者使用yarn
yarn cache clean
yarn install

步骤五:重新打包

在解决了依赖冲突后,重新进行uni-app的打包操作,看问题是否得到解决。

# 假设你使用的是HBuilderX,可以直接在IDE中点击打包按钮
# 或者使用命令行
npm run build:app-plus

通过上述步骤,你应该能够定位并解决uni-app打包时遇到的App原生语言插件或uts插件依赖的三方库冲突问题。如果问题依然存在,可能需要更深入地检查各个插件的文档或寻求社区的帮助。

回到顶部