在Android Studio中生成APK后,如何运行Gradle任务?

在Android Studio中生成APK后,如何运行Gradle任务?,gradle,android-studio,android-gradle-plugin,Gradle,Android Studio,Android Gradle Plugin,以下任务(在应用程序模块的build.gradle中)似乎总是在生成apk之前运行: android.applicationVariants.all { variant -> if (variant.buildType.name == 'release') { def releaseBuildTask = tasks.create(name: "debug") { println(".................... test

以下任务(在应用程序模块的build.gradle中)似乎总是在生成apk之前运行:

android.applicationVariants.all { variant ->
    if (variant.buildType.name == 'release') {
            def releaseBuildTask = tasks.create(name: "debug") {
            println("....................  test   ..............................")
        }
        releaseBuildTask.mustRunAfter variant.assemble
    }
}

有人能提供一个在APK生成后如何运行任务的提示吗?

试着在你的
app/build.gradle中添加这个

assembleDebug.doLast {
    android.applicationVariants.all { variant ->
        if (variant.buildType.name == 'release') {
            def releaseBuildTask = tasks.create(name: "debug") {
                println("....................  test   ..............................")
            }
            releaseBuildTask.mustRunAfter variant.assemble
        }
    }
    println "build finished"
}
调用build命令并指定任务
assembleDebug

/gradlew assembleDebug


Android任务通常在“afterEvaluate”阶段创建。 从Gradle2.2开始,这些任务还包括“AssembledBug”和 “轻松”。要访问此类任务,用户需要使用 关闭后:

afterEvaluate{
assembleDebug.dependsOn someTask
}


来源:

我找到了一个有效的解决方案,在构建完成时自动将发布APK复制到项目根目录中

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

        afterEvaluate {
            packageRelease.finalizedBy(copyReleaseApk)
        }
}

非常感谢你的回答。我昨天从Eclipse迁移到Android Studio。差别非常大。这是否必须通过命令行调用?如果我们在android studio中使用绿色运行按钮,
doLast
块还会执行吗?@11m0从命令行或android studio运行任务完全相同。您必须从gradle 2开始将此命令放在afterEvaluate中。android任务通常在“afterEvaluate”阶段创建。从2.2开始,这些任务还包括“AssembledBug”和“assembleRelease”。要访问这些任务,用户需要使用afterEvaluate闭包