在Android Studio中生成APK后,如何运行Gradle任务?
以下任务(在应用程序模块的build.gradle中)似乎总是在生成apk之前运行:在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
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闭包