在Android Studio中更改Gradle构建目录?

19

我刚刚安装了Android Studio,正在学习使用Gradle构建项目。然而,在默认的项目设置中,我的构建文件位于项目目录中,我希望将它们放在其他地方(最好是项目目录之外)。这是否可行?我应该在哪里进行更改以及要做什么更改?

5个回答

43

非常好用。我只需要将构建文件夹移到 eCryptfs 目录之外就行了! - xyz
耶!我终于可以在公司的Dropbox上工作了,谢谢! - lorenzo-s
@AlexeyKuznetsov 我尝试过这个方法,还有类似的方法,只是将其应用于子项目,但是我只能将一些东西移出默认目录,我仍然可以在默认目录中看到R文件和中间文件(例如exploded-aar等),这些正是我想要移出的东西,你有什么建议吗?我已经尝试了我能找到的所有在线方法。 - Jorge Aguilar
1
这将导致测试目录出现“检测到重复内容根”的错误。 - Zingam
不得不告诉MalwareBytes,gradle没有生成Exploit.PayloadProcessBlock,一旦我这样做了。 - undefined

5
你可以将"buildDir"属性传递给gradlew.bat(我认为在Linux版本中也可以这样做,但我没有测试过)。
示例:
gradlew.bat assembleRelease -PbuildDir="C:\BuildFolder"

1
几天前创建了一个新的应用程序。
Android Studio Giraffe | 2022.3.1 Patch 4
Build #AI-223.8836.35.2231.11090377, built on November 13, 2023
Runtime version: 17.0.6+0-b2043.56-10027231 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.

上述的方法都不起作用了。我讨厌这个。
但是发现这个方法可以。
allprojects {
    setBuildDir("C:/Users/YourUserNameHere/AppData/Local/Android/build/${rootProject.name}/${project.name}")

}

当我想在Google的“我的云端硬盘”中运行/编译某个应用程序时,我会使用这个工具。这样一来,我就可以在多台电脑上进行编码工作。

0
在使用现今默认的Kotlin DSL创建新应用时,builDir = "path"确实无效。然而,builDir = file("path")仍然有效,尽管已被弃用。虽然setBuildDir("path")是它的直接继承者,但与此同时,它也已被弃用,必须被以下内容替代。
至少对于Kotlin DSL来说,后者也已被弃用,你应该转向以下内容。
layout.buildDirectory.set(file("C:/Users/YourUserNameHere/AppData/Local/Android/build/${rootProject.name}/${project.name}"))

尽管它的名字是file(),但它确实也适用于目录路径。
关于旧版Groovy Gradle,builDir = "path"仍然是“非废弃”的推荐方式。

-2

项目的iml文件有一个BUILD_FOLDER_PATH属性。我还没有尝试过自己更改,所以不确定是否有效。默认值为$MODULE_DIR$/build。

编辑:我进行了快速测试,但这并没有起作用。一旦更改,项目需要重新加载,因为iml文件已更改。重新加载后,它会将构建目录恢复为默认值。


我从未使用过这个答案,因此无法验证它是否正确。 - Pablo Jomer
请注意,此答案告诉您不要做某事!.iml是自动生成的。 - P i

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接