如何更改发布APK神器的路径?

时间:2017-04-21 08:35:21

标签: android android-gradle

如何配置Gradle Android项目,以便将IDE构建的版本APK保存到我选择的路径(例如项目根目录),而不是深埋在构建文件夹中?

我已将此添加到应用构建文件的defaultConfig部分,以明智地命名APK并且效果很好,但是如何指定它的位置,或者在构建完成后移动它?

archivesBaseName = "AppName-v$versionName"  // AppName-v1.2.3-release.apk

更新:

如果我手动运行Gradle任务,我在应用级Gradle构建文件中创建了一个成功复制版本APK的任务:

task copyReleaseApk(type: Copy) {
    from 'build/outputs/apk'
    into '..' // project root, one-level above "app"
    include '**/*release.apk'
}

但是我还没有找到一种方法让任务在最后一次构建任务后自动运行。我试过这个:

assembleRelease.finalizedBy(copySupportFiles)

但这导致"无法获得未知属性' assembleRelease'对于com.android.build.gradle.AppExtension类型的对象。"

我也试过这个:

assembleRelease.finalizedBy(copySupportFiles)

似乎没有做任何事情。

2 个答案:

答案 0 :(得分:1)

这有效(在app build.gradle文件的android标签中)。似乎需要afterEvaluate才能引用最初不存在的packageRelease之类的任务。

task copyReleaseApk(type: Copy) {
    from 'build/outputs/apk'
    into '..' // folder above the app folder
    include '**/*release.apk'
}

afterEvaluate {
    packageRelease.finalizedBy(copyReleaseApk)
}

答案 1 :(得分:0)

可以在项目的根目录build.gradle中定义:

allprojects {
    buildDir = "/path/to/build/${rootProject.name}/${project.name}"
}