新手求助:如何解决Multiple output directories specified错误?
Multiple output directories specified 错误原因及解决办法
错误原因
- 项目配置文件(比如
build.gradle、webpack.config.js或package.json这类构建工具配置)里重复定义了输出目录,构建工具没法确定编译文件的存放路径,直接抛出这个错误。 - 举个常见例子:Android项目的
build.gradle里,既在applicationVariants里设了outputDir,又在sourceSets里指定了输出路径;或者Webpack配置里多次写了output.path。
解决办法
1. 定位对应配置文件
根据你用的开发工具找配置:
- Android开发:找
app/build.gradle - 前端Webpack项目:
webpack.config.js - Node.js项目:检查
package.json里的scripts命令或专属构建配置文件
2. 清理重复的输出目录配置
给几个常见场景的修正示例:
Android项目
打开app/build.gradle,搜outputDir相关代码,比如:
android { applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFileName = "my-grocery-app.apk" output.outputDir = new File(project.rootDir, "release-apk") // 这里是一处配置 } } sourceSets { main { // 如果这里也有类似output相关的重复配置,直接删掉 } } }
只保留一处outputDir定义就行。
Webpack项目
打开webpack.config.js,看output区块:
const path = require('path'); module.exports = { entry: './src/index.js', output: { path: path.resolve(__dirname, 'dist'), // 唯一的输出目录配置 filename: 'bundle.js' } // 别在其他地方再写output.path }
确保整个配置文件里只有一处output.path。
命令行传参重复
如果是通过命令行跑构建,比如输了npm run build --output-dir=dist --output-dir=build,这种重复传参也会报错,删掉其中一个重复的参数就行。
3. 重新运行构建命令
改完配置后,重新执行你的构建指令(比如Android的./gradlew assembleRelease、前端的npm run build),错误应该就解决了。
内容的提问来源于stack exchange,提问作者SaVage YT
相关产品推荐
相关产品推荐

