Да, это возможно. Вы можете указать, где будет создаваться ваш apk. На уровне вашего проекта build.gradle
добавьте нужный вам путь внутри всех проектов:
allprojects {
buildDir = "/D:/Foo/Bar/Android/Build/"
...
}
Это создаст ваш apk вместе с сгенерированными промежуточными файлами, temp et * 1028. *. папки внутри папки Build по указанному пути. Если вы хотите sh создать его в папке с именем проекта и т. Д. c, используйте:
buildDir = "/D:/Foo/Bar/Android/Build/${rootProject.name}/${project.name}"
. Для получения дополнительной информации вы можете проверить этот ответ .
ОБНОВЛЕНИЕ: Я не смог найти способ напрямую сгенерировать релизный apk в какую-то указанную c папку, но если все нормально, чтобы сохранить копию это apk в другую папку, вы можете достичь этого с помощью Gradle's Copy
task
. На своем уровне приложения вы можете попробовать приведенный ниже код, который я тестировал.
afterEvaluate {
// to execute the copy task every time a release build is generated
packageRelease.finalizedBy(copyRelease)
}
task copyRelease(type: Copy) {
// set your paths here
def sourcePath = file ("/release/app-release.apk").absolutePath
def destinationPath = "/D:/Foo/Bar/Android/Build/"
// set a name for your build if you are going to rename it
def releaseName = "${rootProject.name}.apk"
from "$sourcePath"
into "$destinationPath"
//use the below line if you wish to rename the apk
rename { releaseName }
}
Даже при том, что он предложил добавить это внутри блока android {...}
, простое добавление его снаружи кажется работающим. Таким образом, даже если apk не генерируется напрямую в вашу папку, задача все же копирует его, чтобы сохранить его в папке по вашему выбору.
Если вам это нужно для отладочных сборок, используйте вместо этого packageDebug
и измените ваши пути соответственно.
Надеюсь, это то, что вы искали.