Archive

Posts Tagged ‘debug’

Installation des outils de Xamarin avec des configurations exotiques – partie 2

Si ce n’est déjà fait, je vous recommande fortement la lecture du 1er billet de cette série : https://nicolasclerc.wordpress.com/2013/12/26/installation-des-outils-de-xamarin-avec-des-configurations-exotiques-partie-1/

Et comme promis, la deuxième partie de cette série de billet concernera l’utilisation d’une tablette exotique (‘marque de distributeur’, made in china et 100% low cost) sur un poste de développement Xamarin/Microsoft.

La tablette utilisée dans ce billet a été acheté dans un magasin Carrefour lors d’une promo de rentrée en 2012.

image

Elle est équipée avec :

  • Android 4.0.3 ICS sans le playstore (elle ne respecte pas les préconisations hardware de Google pour ICS)
  • CPU Rockchip Cortex A8 à 1ghz
  • Ecran 7pouces 800×480
  • 512Mo RAM, 4Go de stockage

Il s’agit donc d’une tablette bas de gamme, dont le principal avantage est le prix.

Connexion au PC

La première étape est donc de s’assurer que le PC reconnait bien le device lorsqu’il est connecté.

Au préalable, la tablette a été configuré en mode ‘débogage USB’.

Lors de la connexion de la tablette, Windows identifie un périphérique ‘CT705FR’ mais n’arrive pas à trouver les pilotes de périphériques. Pour installer les pilotes, je vous renvoi à la 1ere partie de cette série de billet (https://nicolasclerc.wordpress.com/2013/12/26/installation-des-outils-de-xamarin-avec-des-configurations-exotiques-partie-1/)

image

Après cette étape la tablette est bien identifiée comme un ‘Android phone’ par Windows.

Mais

(ben oui, il faut bien justifié ce 2e billet ),

Si je lance mon Visual Studio (avec les outils Xamarin installés) et que je rouvre le projet créé dans le billet précédent, ma liste des cibles de débogage ne mentionne pas la tablette comme on aurait pu s’y attendre.

Vous pouvez tenter des reboots du PC, de la tablette, essayez de rooter la tablette, faire bruler des cierges ou installer votre tablette à côté d’une corbeille de fruit, rien n’y fera. 70€ de perdu … que neni ! Il suffit de continuer à lire J

Le rôle d’ADB

ADB (Android Debug Bridge) est un utilitaire faisant partie du SDK Android qui a été installé par l’installeur Xamarin. Cet utilitaire fait la passerelle entre vos outils de développement et le périphérique Android sur lequel le débogage USB est activé.

ADB peut être interrogé en ligne de commande. On va vérifier les périphériques détectés par ADB :

Ouvrir une fenêtre de ‘ligne de commande’, et positionnez-vous dans le dossier du SDK Android (dans mon cas, il se trouve dans le dossier : C:\Users\Nicolas\AppData\Local\Android\android-sdk , à adapter en fonction de votre installation)

Adb.exe se trouve dans le sous-dossier platform-tools (ou le sous-dossier tools si votre sdk est ancien)

Exécuter la commande ‘adb devices –l’ pour obtenir la liste des devices reconnus par adb.

image

Le résultat est sans appel : rien !

Donc : bien que Windows ait reconnu notre tablette, que le driver système ait été chargé, adb continue à ne pas aimer notre tablette comme cible de débogage.

En fait, par défaut ADB reconnait uniquement un certain nombre de devices (ceux vendus par Google et les principaux fabricants, ce qui explique que notre téléphone HTC est été reconnu d’emblée mais pas notre tablette exotique)

Je vais vous décrire la marche à suivre totalement générique pour configurer ADB pour supporter votre device. Cette démarche est la même quel que soit le périphérique Android du moment que Windows le reconnait. Il faut la réitérer pour chaque device non reconnu par ADB. Cette méthode est aussi utilisable pour ceux qui font du développement natif (java) pour Android.

Pour se faire, il vous faut connaitre l’identifiant USB du fabricant de votre device. Dans le cas des grandes marques s’est assez simple, dans le cas des périphérique noname ou MDD (Marque De Distributeur) ce n’est pas facile.

Récupérer l’identifiant du fabricant de votre device

Le plus simple est de le récupérer dans le gestionnaire de périphériques Windows :

  • Lancer l’outil de gestion l’ordinateur,
  • Sélectionnez la section « Gestionnaire de périphériques »,
  • Ouvrez le nœud « Android Phone »
  • Faites un clic droit sur votre device et sélectionner « Propriétés »

image

  • Allez dans l’onglet ‘détails’
  • Dans la liste déroulante ‘Propriété’, sélectionnez ‘Numéro d’identification du périphérique’

image

La valeur qui nous intéresse est celle qui suit ‘USB\VID_’, soit 2207 (en hexadecimal), il s’agit de l’identifiant du fabricant du périphérique USB.

 

Forcer ADB à accepter notre ‘fabricant’

Une fois l’identifiant du fabricant de notre device connu, il ‘suffit’ maintenant de l’ajouter dans un obscure fichier de configuration qui se trouve dans le dossier ‘.android’ dans votre dossier utilisateur. Sur mon poste, il s’agit donc du dossier C:\Users\Nicolas\.android

Dans ce dossier, éditez (ou créez) le fichier ‘adb_usb.ini’ avec votre éditeur de texte préféré (notepad++ ou même Visual Studio). Le notepad.exe de Windows ne gère pas correctement les retours à la ligne ‘sauce Unix’, à éviter donc.

Ajoutez une ligne de texte ‘0x2207’ (2207 étant à remplacer par l’identifiant de votre fabricant que vous aurez relevé à l’étape précédente. Dans mon cas, 0x2207 est l’identifiant du fabricant de la tablette Carrefour CT705).

image

Il faut ensuite redémarrer le serveur ‘adb’ pour qu’il prenne en compte le nouveau fichier de configuration : exécutez la commande ‘adb kill-server’ puis ‘adb start-server’, puis vérifiez la détection de votre device  avec la commande ‘adb devices –l’:

image

Ça marche !!! ADB accepte notre tablette maintenant. Dernière vérification avec Visual Studio (relancer le pour rafraichir la liste des devices de debug) :

image

A vous le débogage Android sans vous ruiner en device !

Néanmoins, un panel significatif des différents types de devices (puissance CPU, version OS, résolution écran) est fortement recommandé afin de tester vos applications dans différents cas d’utilisation. L’utilisation de périphérique low cost permet d’équiper une équipe complète à moindre cout, tout en mutualisant des périphériques plus couteux pour les phases de test et de validation.

Et puis, commencer avec une cible de faible puissance pousse à optimiser son code dès le début.

Voilà : ces 2 billets vous permettent de commencer sereinement le développement .Net sur Android avec les outils de Xamarin , Visual Studio et les périphériques exotiques qui pullulent en cette fin d’année connectée et high-tech ; que vous les ayez reçu en cadeau ou que vous comptiez en offrir à vos collaborateurs.

 

Je profite de ce dernier billet de 2013 pour vous souhaiter un bon réveillon, et tous mes meilleurs vœux pour cette nouvelle année 2014 qui débutera dans quelques heures.

Catégories :.NET, Mobilité Étiquettes : , , ,

Visual Studio 2010 n’arrive pas à attacher son débugger à Internet Explorer 10

Depuis le déploiement d’Internet Explorer 10 via Microsoft Update, Visual Studio 2010 n’arrive plus à s’attacher à l’instance d’IE lors du debug de projet Web.

“Attached the Script debugger to process ‘[xxxx] iexplore.exe’ on machine ‘YYYY’ failed. A debugger is already attached.”

Ce n’est pas critique, mais il n’est plus possible de débugger le script qui tourne dans le navigateur, et vu l’omniprésence de jQuery et autres plugins ou framework javascript ca peut être gênant pour le développeur.

En fait, il s’agit juste d’un petit soucis d’enregistrement d’une DLL … qu’il suffit de réenregistrer pour tout remettre d’aplomb : Dans une ligne de commande lancée en tant qu’Administrateur , exécutez la ligne suivante :

regsvr32.exe "%ProgramFiles(x86)%\Common Files\Microsoft Shared\VS7Debug\msdbg2.dll

et tout rentrera dans l’ordre.

Catégories :Visual Studio Étiquettes : , , ,