uni-app打包时提示App原生语言插件或uts插件依赖的三方库存在冲突
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删除后,再次打包依旧不可以。请问这种依赖包冲突都是怎么解决的呀
在处理uni-app打包时提示的App原生语言插件或uts插件依赖的三方库冲突问题时,通常是因为不同插件或库之间引用了相同但版本不兼容的依赖库。以下是一个可能的解决方案,包括一些代码示例和步骤,帮助你检查和解决这类问题。
步骤一:定位冲突
首先,你需要确定哪些库或插件之间存在冲突。可以通过查看package.json
和各个插件的README
或docs
文档来了解它们依赖的库。
步骤二:使用npm/yarn解决依赖版本冲突
如果你确定了冲突的库,可以尝试使用npm或yarn的--legacy-peer-deps
选项来安装依赖,这可以绕过peer依赖的版本冲突。
# 使用npm安装依赖,忽略peer依赖版本冲突
npm install --legacy-peer-deps
# 或者使用yarn安装依赖,忽略peer依赖版本冲突
yarn install --ignore-engines
步骤三:手动解决依赖冲突
如果上述方法未能解决问题,你可能需要手动解决依赖冲突。这通常涉及到以下几个步骤:
- 升级/降级库:检查并升级或降级引起冲突的库到兼容版本。
// 在package.json中手动修改依赖版本
"dependencies": {
"conflicting-library": "^1.2.3" // 修改为你需要的版本
}
- 使用别名:如果使用的是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插件依赖的三方库冲突问题。如果问题依然存在,可能需要更深入地检查各个插件的文档或寻求社区的帮助。