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) } }