24 septembre 2015
publié par 
Le mécanisme de sécurité du WLangage permet en cas d'erreur ou d'exception d'avoir un détail complet sur le code à corriger. Cependant un cas d'utilisation qui n'a pas été anticipé par le framework (les possibilités de création avec WINDEV Mobile sont infinies...), peut provoquer l'arrêt d'une application, sans indiquer le code exact en cause. Lorsque cela se produit l'application sur le périphérique Android affiche :
  • <NomAppli> s'est arrêté [OK] dans le cas d'un blocage dès le code du projet (aucune IHM de l'application n'a le temps de s'afficher),
  • "Erreur interne du framework WDJAVA" dans le cas d'un blocage dans le code d'une fenêtre ou d'un champ d'une fenêtre.

 

Dans ce cas exceptionnel où le WLangage ne donne donc pas d'indication sur l'origine de l'erreur, et que les dernières modifications effectuées sont trop nombreuses pour cerner immédiatement l'origine du défaut, il est possible d'utiliser un utilitaire du SDK Android : Monitor.

 

Voici la marche à suivre :
  1. Lancer Monitor.bat, il est dans le dossier \Tools\ du SDK Android. Le périphérique (smartphone ou tablette) Android apparaît dans le volet "Devices". Par défaut toutes les actions en cours sur le périphérique défilent dans le volet "LogCat". Il s'agit du volet qui va être déterminant.
  2. Dans le volet "LogCat" sélectionner "Error" dans la combo, et cliquer "Clear log". A partir de là l'utilitaire Monitor ne montre plus que les erreurs qui surviennent sur l'appareil.
  3. lancer l'application sur l'appareil, et renouveler l'ensemble des actions qui conduisent au blocage.
  4. Rechercher dans le volet "LogCat" le nom de l'application, et/ou le nom du package, et/ou la chaîne "wdjava", et/ou la chaîne "pcsoft". Attention la recherche différencie les minuscules des majuscules. Le volet "LogCat" fait défiler toutes les erreurs qui surviennent sur le périphérique. Toutes ne sont pas liées à l'application, mais cette recherche va permettre de repérer le traitement à l'origine du blocage, et donc de rectifier le code !

Un exemple : sous Android la fonction NumériqueVersChaine peut provoque un arrêt de l'application si elle est appelée avec un paramètre <format> qui ne correspond pas aux syntaxes documentées. Dans ce cas l'erreur WDJava est générée. Monitor permet avec le filtrage des erreurs et la recherche de "wdjava", de trouver qu'il s'agit de la fonction NumériqueVersChaine et ainsi de remonter au code qui est à la source du blocage :

A noter que la fonction WLangage Trace permet également d'ajouter des informations de débogage qui seront visibles dans l'utilitaire Monitor.

 

== Mise à jour 22/1/2021 ==

A partir de la version 26 le nouveau centre de contrôle Android donne accès à toutes les informations nécessaires sur les appareils connectés afin de faciliter la mise au point :
Développement Android : exploration, logcat, trace, gestion des applications installées : le centre de contrôle Android devient incontournable !

 

< Retour

Publier un commentaire : 
Votre adresse email ne sera pas publiée