Accueil > .NET, Mobilité > Installation des outils de Xamarin avec des configurations exotiques – partie 1

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

Après quelques mois de silence blogistique (mais pas d’inactivité professionnelle, rassurez-vous), je suis de retour sur mon blog technique.

Et comme cadeau pour les fêtes de fin d’année, j’ai décidé de compiler les solutions à différents tracas rencontrés lors de la configuration d’un poste de développement pour utiliser les outils de Xamarin (http://www.xamarin.com).

Pour ceux qui ne connaîtraient pas Xamarin, cette société s’est spécialisée dans l’édition d’outils de développement .Net (éditeur, framework, clr) visant les plateformes sur lesquelles Microsoft ne propose pas de solutions officielles .Net :

  • iOs (iPhone, iPad, iPod)
  • Mac OS
  • Android

La relation entre Xamarin et Microsoft a été fluctuante aux fils des années, mais en 2013 un partenariat officiel a ‘enfin’ été signé entre les 2 sociétés : http://blog.xamarin.com/microsoft-and-xamarin-partner-globally/

Tout d’abord, soyons honnête, la plupart des tracas rencontrés ne concernent pas les outils de Xamarin mais les frameworks, sdk, outils tiers nécessaires ou device de développement.

Dans cette première série de billets, je vais me concentrer sur la configuration pour du développement ciblant Android. La configuration logicielle initiale (entièrement à jour au niveau des correctifs et updates) est :

  • Windows 8.1 FR 64 bits
  • Visual Studio 2013
  • Visual Studio 2010

L’installeur de Xamarin se charge d’installer l’ensemble des dépendances logicielles nécessaires :

  • JDK
  • Android SDK
  • MonoDroid (.Net pour Android)
  • MonoTouch (.Net pour iOs)
  • Xamarin Studio (environnement de développement ‘Visual Studio like’, disponible aussi sur Mac)
  • Extension de développement pour Visual Studio (développement Android & iOs)

L’utilisation d’un device physique quand on fait du développement Android sous Windows est importante. En effet, l’émulateur Android fournit par Google n’a jamais été réellement optimisé pour Windows et les émulations sont catastrophique de lenteur.

Les devices de développement

Précision utile : l’utilisation de device physique (téléphone ou tablette) pour le développement avec les outils de Xamarin nécessite une licence, la version d’évaluation ou gratuite ne permet que l’utilisation des émulateurs fournit par les SDKs, et ne permet pas le packaging pour le déploiement sur la différentes place de marché mobile.

Actuellement, j’utilise 2 périphériques physiques Android (un téléphone ‘ancien’, une tablette ‘grand public’ et ‘bas de gamme’) non rooté. Dans le cadre de développement grand public, il est néanmoins judicieux d’avoir un échantillon plus fournit à cause du foisonnement des systèmes tournant sous Android et leur grand variété. Ces 2 devices ne sont pas des bêtes de courses, mais l’avantage c’est qu’ils sont ‘représentatifs’ de la tranche basse (puissance ou version d’os) de ce que l’on peut trouver sur le marché grand public. Dans mon cas, il s’agit :

  • téléphone HTC Wildfire S A510e (équipe d’Android 2.3.5) certifié Google avec le PlayStore officiel
  • tablette ‘Carrefour’ CT705 (Android 4.0.3) sans Google Playstore mais avec le store GetJar

Les 2 devices sont configurés pour permettre le développement : le débogage est activé (option dans la configuration de votre device Android), le port USB est configuré pour la charge uniquement.

L’installation des outils de Xamarin s’étant déroulée sans soucis (prévoir quelques 2go de téléchargement si vous partez d’une machine vierge). Un petit projet de test pour Android est créé et lancé dans l’émulateur Android. Tout marche bien.

C’est lorsque j’ai tenté un debug sur le device que les soucis ont commencé : non reconnaissance des devices par Windows malgré le SDK Android installé. De fait, adb (l’outils du sdk Android utilisé en arrière-plan pour dialoguer avec un device Android pour du debug) ne voit pas les devices.

Driver Android pour le développement

Symptôme et explication :

Dans le cas du HTC Wildfire S, Windows 8.1 détecte bien un ‘Android Phone’ mais ne trouve pas le driver correspondant, y compris en effectuant une recherche sur Windows Update.

Résolution :

Apres plusieurs tentatives, la solution la plus fiable et la seule systématiquement reproductible consiste à installer les drivers Intel pour les périphériques Android. Bien que décrit comme ciblant les plateformes Android à base de processeur Atom, ces drivers fonctionnent très bien avec les architectures Arm (cas du Wildfire et de la tablette).

Autre soucis, l’installation de ces drivers sous Windows 8.1 échoue car l’installation ne reconnait pas la version de Windows. La solution consiste à lancer l’installation en forcant la compatibilité avec Windows XP SP3.

Marche à suivre :

clip_image002

  • Lancez ensuite l’installation en mode Administrateur
  • L’installation doit se dérouler sans soucis.
  • Connectez maintenant votre périphérique Android en USB. Windows le détecte mais le driver n’est toujours pas chargé.
  • Ouvrez le gestionnaire d’ordinateur (Explorateur de fichiers, puis bouton « Gérer » dans le ruban) et sélectionnez « Gestionnaire de périphérique » dans l’arborescence), votre périphérique doit apparaitre dans la branche « Autres périphériques » :

clip_image004

  • Faites un clic droit sur « Android Phone », sélectionnez « Mettre à jour le pilote »
  • Dans la fenêtre qui apparait, sélectionnez la 2e option « Rechercher un pilote sur mon ordinateur », puis cliquez sur « Choisir parmi une liste de pilotes de périphériques sur mon ordinateur »
  • Sélectionnez « Android Phone », puis « Android Composite ADB Interface », puis « Suivant »

clip_image006 clip_image008

  • Confirmez l’installation du driver si Windows vous affiche un « avertissement de mise à jour de pilote » : Windows effectue l’installation.
  • Un fois l’installation effectuée, le gestionnaire de périphériques affiche maintenant votre device dans la branche « Android Phone » sous le nom générique du driver.

clip_image010

  • Relancez Visual Studio , ouvrez ou créez un projet Android.
  • Dans la barre d’outils Xamarin, la liste déroulante des cibles de debug vous proposera maintenant votre device physique en plus des images pour de l’émulateur.

clip_image012

Cette procédure devrait marcher pour la plupart des device Android quelques soit leur fabricant. Néanmoins le marché android étant fortement éclaté entre de multiples acteurs de source et de qualité très variables, il n’est pas rare que l’étape décrite ci-avant ne soit pas suffisante, et Visual Studio ne vous listera pas votre périphérique comme cible d’un débogage. Ce risque est d’autant plus grand que le périphérique est d’origine « exotique » (cas de ma tablette MarqueDeDistributeur, fabriqué en chine et revendu sous la marque du distributeur).

La résolution de ces soucis de détection sera traitée dans le billet suivant qui sortira dans les prochains jours.

Affaire à suivre …

Catégories :.NET, Mobilité