J'ai un script de fourmis qui fait ce qu'il faut faire, mais j'ai besoin de définir quelques valeurs de propriété sur la base de la publication ou du débogage. Comment puis-je faire cela? P>
Si cela fait une différence, mon script ANT exécute certaines tâches utilitaires personnalisées avant d'effectuer une construction Android. P>
Pour répondre à ma propre question: p>
Les propriétés à rechercher sont " build.mode.release em>" et " build.mode.debug em>", mais il y a une réserve
4 Réponses :
ant -d
Je sais que, mais je ne vois pas la partie conditionnelle de cela. Je souhaite soit charger l'un des deux fichiers (version.properties/debug.properties) ou définir manuellement les valeurs de la propriété dans le script en fonction de la configuration. Prenez un chemin de répertoire par exemple, je veux sortir / libération et sortie / débogage
@CopoliII Utilisation
Je suis au courant de la tâche de condition, j'ai besoin de la condition réelle ... quelque chose qui évalue en true si le script anti-ant est exécuté avec "Ant Release" et false avec "Ant Debug" ou inversement. Il doit y avoir une propriété quelque part ... c'est-à-dire à VisualStudio / Msbuild, c'est $ (Configuration), qui évalue à «libérer» ou «débogage»
La raison de la "mise en garde" est en fait documentée dans le projet Android alors ce que vous voulez vérifier est Voici un exemple qui fonctionnerait automatiquement: p > Main_Rules.xml Code> (
$ android_sdk_root / Tools / Ant / Main_Rules.xml code>):
build.mode.debug code> (exécuté via
ant débogé code>),
build.mode.release code> (quand
@ rabuggable = false code> et exécuté avec
version ant code>), et enfin à votre mise en garde:
build.bugging.debug code> (Quand
@ rabuggable = true code> et exécuté avec
Version ant code>) p>
<target name="-my-debug-precompile" if="build.mode.debug">
<!-- This is executed for any "debug" build ("ant debug") -->
</target>
<target name="-my-release-precompile" unless="build.mode.debug">
<!-- This is executed for any non-"debug" build (e.g., "ant release",
regardless of the @debuggable attribute in AndroidManifest.xml) -->
</target>
<!-- This is called automatically by Android's ant tasks, and delegates the
task to one of the above two targets: -->
<target name="-pre-compile" depends="-my-debug-precompile,-my-release-precompile" />
Main_Rules est où j'ai trouvé les informations que j'ai postées. Merci :)
@copoliii: La raison pour laquelle j'ai élaboré est parce que vous n'avez pas mentionné la 3ème propriété ( build.packing.debug code>) - ce qui est vrai lorsque l'application est supposée i> Mode de sortie (
Version Ant Code>), mais est forcé à une construction de débogage en raison de
@ rabuggable = true code> - et n'a pas non plus appelé explicitement pourquoi / I> Votre "mise en garde" s'est produite. Je me rends également compte que vous avez déjà eu une solution qui a fonctionné pour vous et que vous avez décrite par mots, mais comme cela en est ainsi et que d'autres vont trébucher sur cette question plus tard, avoir un exemple d'épelé est utile pour les autres; d'où l'exemple cibles.
En tant que mise à jour de la réponse de Joe, on dirait, au moins avec des outils Android révision 22.3, la propriété
M'a pris des heures d'essayer avant de trébucher dessus. Cela ne peut pas être excédité. En effet, il est maintenant build.is.packing.debug code>
Soultion finale pour le module de débogage de Ant et JNI: IFEQ ($ (BuildMode), True)
1. Dans Custom_Rules.XML, attribuez le mode de débogage à "BuildMode"
local_cflags = -Ddebug code>
endif p> p>