Articles taggues ‘android’

Comment corriger l’erreur « Error generating final archive: Debug certificate expired »

Bon, chose ennuyeuse, ça fait plus d’un an que mon Eclipse et mon sdk Android est installé, et ce soir, plus moyen de compiler mon projet : « Error generating final archive : Debug certificate expired ».
Alors chose super logique, il semblerait que le SDK Android ne soit capable de signer le certificat de débug que pour une durée d’un an. C’est assez stupide… Et surtout le vieux réflexe qu’on a face à ça : doit-on réinstaller le SDK ? Et bien non, il y a une solution plus rapide (largement).

 

  1. Avant tout, ouvrez votre explorateur de fichier, et allez dans le répertoire de la configuration d’Android « %HOMEPATH%\.android » (suivant votre système d’exploitation, c’est dans /home/<vous>/.android ou bien c:/User/<vous>/.android);
  2. Trouves « debug.keystore » et supprimez-le;
  3. Retournez dans Eclipse et nettoyez votre projet (Project > Clean)
  4. Tout est revenu dans l’ordre.

 

Il y a ensuite des solutions pour faire son propre certificat, mais cette explication sera pour plus tard (quand je l’aurais testé moi même).

Utiliser la touche « Back » dans une application mobile en Flex

Depuis Flex 4.5, j’ai commencé à m’amuser avec la création d’application Androïd en AIR, franchement c’est pas mal, on garde un certain nombre de nos automatismes, et on va assez vite pour faire quelque chose, bon après il faut le dire on se rend compte que certaines choses ne sont pas pareil sur un mobile que sur une application AIR de bureau, mais on gagne quand même du temps par rapport à une application Androïd faite de manière classique. De plus avec la 4.5.1, pas grand chose à changer pour être compatible pour iPhone ou BlackBerry Tablet. Que du bonheur donc.

Mais bien sur, un bonheur n’arrive jamais seul. Il y a donc quelques soucis parfois, des choses expliquées d’une façon dans la documentation officielle d’Adobe et qui finalement ne s’avèrent pas être comme ça.

Par exemple avec l’utilisation des touches « physiques » des mobiles (je mets des guillemets car sur mon Archos IT, elles sont totalement virtuelles, et sur mon GSii, ce n’est guère mieux…). En effet la touche menu, il n’y a pas de problème, on peut tout à fait l’activer sans effet secondaire. Mais la touche back, c’est une autre paire de manches, celle-ci s’active, malgré le preventDefault sauf si on déclare l’événement comme il faut…

Petit exemple, je veux appeler l’eventListener associé à la touche Back :

1
addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);

Et je défini ma fonction onKeyDown

1
2
3
4
5
6
7
8
protected function onKeyDown(event:KeyboardEvent):void
{
    if (event.keyCode == Keyboard.BACK)
    {
        event.preventDefault();
        trace("Back Pressed");
    }
}

Et voilà me direz vous, mais vous vous doutez bien que s’il y a article, ce n’est pas le cas… En effet, dans ce cas, la trace s’affiche bien, mais la touche BACK s’exécute (l’application se ferme si c’est sur l’écran principale ou on retourne à la vue précédente sinon). Ce n’est pas le cas prévu étant donné que l’on a utilisé la fonction preventDefault

Comment faire ?

Et bien tout simplement au lieu de définir en « ligne » l’ajout de l’eventlistener, on le met dans l’entête du fichier MXML

1
keyDown="onKeyDown(event)"

On ne change pas la fonction bien entendu.

Alors, heureux ?

Haut de Page