作者:_名花侑主 | 来源:互联网 | 2023-05-28 21:14
以下任务(在应用程序模块的build.gradle中)似乎始终在生成apk之前运行:
android.applicationVariants.all { variant ->
if (variant.buildType.name == 'release') {
def releaseBuildTask = tasks.create(name: "debug") {
println(".................... test ..............................")
}
releaseBuildTask.mustRunAfter variant.assemble
}
}
在生成apks之后,是否有人可以提供有关如何运行任务的提示?
1> 小智..:
Android任务通常在"afterEvaluate"阶段创建.从gradle 2.2开始,这些任务还包括"assembleDebug"和"assembleRelease".要访问此类任务,用户需要使用afterEvaluate闭包:
afterEvaluate {
assembleDebug.dependsOn someTask
}
来源:https://code.google.com/p/android/issues/detail?id = 219732#c32
2> alijandro..:
尝试在你身上添加这个 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
3> Ollie C..:
我发现了一个有效的解决方案,可以在构建完成时自动将发布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)
}
}