La tâche suivante (dans Build.Gradle du module d'une application) semble fonctionner toujours avant que l'APK ne soit produite:
android.applicationVariants.all { variant ->
if (variant.buildType.name == 'release') {
def releaseBuildTask = tasks.create(name: "debug") {
println(".................... test ..............................")
}
releaseBuildTask.mustRunAfter variant.assemble
}
}
3 Réponses :
essayez d'ajouter ceci en vous Invoquez la commande de construction et spécifiez la tâche app / build.gradle.gradle code> assemblagebug code> p > ./ gradlew assemblagebug code> p> p>
Merci beaucoup pour la réponse. J'ai migré vers Android Studio d'Eclipse hier. La différence est assez significative.
Cela doit-il être invoqué via la ligne de commande? Le bloc code> Dolast (code> sera-t-il toujours exécuté si nous utilisons le bouton Green Run dans Android Studio?
@ 11m0 Exécutez la tâche de la ligne de commande ou du studio Android est totalement identique.
Vous devez mettre cette commande à l'intérieur de la suite après avoir commencé à partir de gradle 2.2 Stackoverflow.com/a/52915218/8942811
Les tâches Android sont généralement créées dans la phase "Afletvalouse". À partir de 2.2, ces tâches incluent également "Assemblledebug" et "AssemblleLease". Pour accéder à de telles tâches, l'utilisateur devra utiliser une fermeture après-évaluation.
Les tâches Android sont généralement créées dans la phase "Afletvalouse". À partir de la gradle 2.2, ces tâches incluent également "assemblledebug" et "assemblageasease". Pour accéder à de telles tâches, l'utilisateur devra utiliser un Fermeture Afletvalouse: P>
afterevaluate { assembledebug.dependson sentastask } code> p> blockQuote>Source: https://code.google.com/ P / Android / Problèmes / Détails? ID = 219732 # C32 P>
J'ai trouvé une solution qui fonctionne, pour copier l'APK de libération dans la racine du projet sur la construction de la construction.
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)
}
}