J'ai bricolé du code d'ici et là pour une trace que j'aime ... ça génère une erreur pour obtenir une trace de pile et choisir le nom de la routine tracée, j'aime ce détail dans le journal de suivi.Adobe Air, l'installation empaquetée échoue avec ma routine de trace ... pourquoi?
Problème: échec dans un fichier AIR installé. Je me demande pourquoi? Je ne m'attends pas à ce qu'il fasse quoi que ce soit ... juste, je préférerais que ça ne fasse pas échouer le programme!
tx Artie
enter code here
static public function XTRACE(... traceArgs):void {
try {
throw new Error(); // make a stack
} catch (e:Error) {
var stack:String = e.getStackTrace();
var frames:Array = stack.split("\n");
var myFrame:String = String(frames[2]);
myFrame = myFrame.replace("\t", "");
// "at " can be followed by some part of the package
// you don't want to see. E.g., if your code is all in
// com.foo.bar, you can put "at com.foo.bar." so as not
// to crowd the display
myFrame = myFrame.substr("at ".length);
myFrame = myFrame.substring(0, myFrame.indexOf("["));
var now:Date = new Date();
trace(new Date().toLocaleTimeString() + ":" + myFrame + ": " + traceArgs.join(" "));
}
}
Le symptôme visible de l'échec de l'application est que l'écran d'ouverture apparaît vide. Aucune erreur n'est affichée ou trouvée (par exemple dans les journaux système). Lorsque les appels à XTRACE sont supprimés, le programme fonctionne correctement. Solution plus facile: lorsque tout le contenu de la routine XTRACE est mis en commentaire ... alors le programme installé ".air" fonctionne correctement. L'erreur dans XTRACE crée une trace de pile, de sorte que l'origine de la trace est connue, par ex. Global.XTRACE ("test pour les données se déplace") produit: 13:14:26: com.muchoswing.cantoyo :: ApplicationClass/handleButton(): test pour les mouvements de données –
Comment les lignes out un par un et voir quelle ligne le casse – 99miles