Tutoriel Android : "Hello World" version 1.5

Cyril Mottier vous avait présenté l’arborescence d’un projet Android et les principaux composants d’une application. Impatients de mettre la main à la pâte? On attaque maintenant les choses sérieuses avec une version améliorée du célèbre “Hello World”, avec le SDK Android 1.5 s’il vous plaît !

Nous y voilà enfin ! Les “guerriers” qui ont eu le courage de lire les deux premières parties de ce tutorial vont enfin pouvoir arriver à leurs fins. Cette fin c’est la réalisation de votre premier programme sur Android. Comme à l’accoutumée, il m’a semblé judicieux de faire ce que tout bon professeur enseigne à ses élèves lors de l’apprentissage d’une nouvelle technologie ou d’un nouveau langage : un “Hello World”.

Certains d’entre vous ont probablement remarqué qu’avec le plugin ADT (Android Development Tools) d’Eclipse, la création d’un nouveau projet Android revient en fait à la création d’un programme de type “Hello World”. Ce “Hello World” est d’une simplicité enfantine. Cela permet aux débutants de mieux appréhender le développement sur Android. Dans les lignes qui suivent, nous allons créer notre propre “Hello World” en modifiant l’existant. Nous tenterons de l’améliorer d’un point de vue graphique essentiellement.

Note : Les exemples et les copies d’écran ci-dessous ont été effectués sur le SDK 1.5. Ce SDK introduit quelques nouveautés afin de faciliter le développement sur Android. On remarquera par exemple des changements au niveau de l’arborescence du projet par rapport à celle expliquée dans la partie 1 de ce tutorial

Vous noterez dans cette partie que le code Java a volontairement été réduit au maximum. Pourquoi? La réponse est assez simple. Le développement sur Android se fait bien sûr en Java comme il a été précisé dans des parties antérieures. Néanmoins, lorsqu’il s’agit d’interface graphique, le XML est préférable car plus simple et plus lisible. En effet, les ingénieurs de chez Google ont conçu un système d’expansion (inflate) de fichiers XML pour créer des interfaces graphiques. Ces fichiers XML sont ensuite utilisés, en interne par le système, pour générer l’interface graphique. Ce dernier relit les fichiers XML puis créé les objets Java associés de façon automatique.

Note : En réalité, les fichiers XML ne sont pas incorporés dans votre paquet d’installation sous forme XML. Le “parsing” (action de relire un fichier et d’en extraire les informations) est une opération relativement coûteuse. Pour contrer ce problème, les fichiers XML sont en réalité pré-parsés et incorporés sous une forme plus rapide à lire/exécuter dans le paquet d’installation. On conserve ainsi l’avantage de la lisibilité et de la facilité d’utilisation d’un point de vue utilisateur et on optimise d’autre part la relecture de ces fichiers lors de l’expansion de l’interface graphique.

Ce tutorial explique comment créer, à partir de rien, ce premier “Hello World”. La meilleure façon de bien comprendre la totalité de ce tutorial est d’en lire l’intégralité. Si vous n’avez pas réellement envie de vous attarder sur les différents points et préférez attaquer directement le code, les sources et les ressources sont disponibles dans ce fichier.

Maintenant que les quelques précisions ont été données, nous pouvons créer notre premier “Hello World”. Pour ce faire, commençons par créer le projet dans l’environnement Eclipse. Cliquez sur File > New > Other… > Android Project. Une boite de dialogue un peu modifiée en comparaison de celle présentée en partie 1 s’ouvre. Remplissez là comme suit :

new-android-project

Validez la création du projet en cliquant sur Finish. Nous voilà maintenant en présence d’un projet de type “Hello World” affichant simplement un texte à l’écran. Pour lancer l’application sur l’émulateur, cliquez simplement sur Run > Run ou sur l’icône représentant un cercle vert et contenant un triangle blanc. Une boite de dialogue s’ouvre alors et vous demande quel sera le type de l’exécution. Dans notre cas nous souhaitons bien sûr que l’exécution se fasse sous la forme d’”Android Application”.

L’objectif de cette partie est d’améliorer ce “Hello World” en n’utilisant presqu’exclusivement que du XML. Listons tout d’abord les différentes valeurs et ressources que nous utiliserons:

Commençons par créer les différentes chaines de caractères que nous utiliserons. Ces éléments se trouvent dans le fichier strings.xml. Double cliquez sur ce dernier pour ouvrir la vue de modification. On y retrouve déjà deux chaines de caractères :

android-resources

La première chaine est “app_name”. C’est le nom qui sera affiché dans le “Home Screen” sous l’icône de l’application. Cette chaine a pour valeur le nom de l’application donné dans la boite de dialogue à la création du projet. Il n’est donc normalement pas nécessaire de la modifier. La chaine “hello” par contre ne satisfait pas à nos critères et nous allons donc changer sa valeur à “Hello World”. Enregistrez le fichier pour valider les changements.

Créons maintenant une nouvelle couleur qui servira pour l’affichage de la chaine de caractère “Hello World”. Il nous faut un fichier colors.xml. De base, ce fichier n’existe pas et il faut donc le créer manuellement. Pour ce faire cliquez simplement sur l’icone Android disposant d’un signe plus vert. Une boite de dialogue, qui a été introduite avec le SDK 1.5, apparait. Nous souhaitons créer un fichier colors.xml qui contiendra des valeurs (values) relatives aux couleurs. ADT s’occupe automatiquement de créer le fichier dans le bon répertoire (c’est à dire res/values).

new-android-xml-file

Le fichier de ressources colors.xml étant maintenant créé, il ne nous reste plus qu’à y ajouter une couleur. La couleur sera le blanc parfait “white” et la valeur associée “#fff”. Cliquez sur Add > Color et remplissez les champs avec les valeurs adéquates. Notez qu’Android gère plusieurs formats de couleurs que sont #RGB, #ARGB, #RRGGBB et #AARRGGBB. Ce sont les notations hexadécimales des couleurs R représentant le rouge, G le vert, B le bleu et A le canal alpha (la transparence).

Pour créer la dimension de la chaine de caractères “Hello World”, il suffit de réitérer l’opération. Comme vous vous en doutez probablement, l’objectif est de créer un fichier dimensions.xml et d’y inclure le couple nom/valeur suivant : “dim_hello”/”20px”. Dans notre cas, nous utilisons les pixels (px) comme mesure mais d’autres dimensions sont disponibles : in, mm, pt, dp et sp.

Ajoutons, pour finir l’image de la mascotte Android dans le dossier des drawables. Il suffit simplement d’effectuer un glisser/déposer dans le dossier drawable à l’aide d’Eclipse. Vous pouvez aussi directement inclure le fichier dans votre workspace puis lancer un rafraichissement de votre projet par un F5 dans Eclipse.

Note : En réalité, Android peut gérer les ressources présentes dans un seul et unique fichier de valeurs. Néanmoins, l’expérience prouve que mélanger les chaines de caractères, les couleurs, les tableaux d’entier, les dimensions, etc. n’aide pas à la compréhension d’un projet. De plus lors de l’internationalisation (i18n), il est inutile de traduire des grandeurs indépendantes de la localisation telles que les couleurs ou les dimensions par exemple. Il est donc préférable de séparer l’ensemble des ressources par type comme il est fait dans ce tutorial.

Toutes les ressources sont maintenant prêtes. Nous pouvons modifier l’interface graphique. Double-cliquez sur main.xml. L’éditeur de “layout” s’affiche. Il vous est possible de créer l’interface en mode graphique ou en tapant simplement le fichier XML à la main. Pour basculer entre les modes, utilisez les onglets en bas de la fenêtre. L’interface graphique étant assez facile d’utilisation, nous allons directement taper le code XML. Notre objectif est d’afficher l’image de la mascotte Android avec un “Hello World” en dessous. Le tout sera également centré quelque soit le type d’écran ou l’orientation utilisé. Le code ci-dessous représente l’interface graphique voulue :

<?xml version="1.0" encoding="utf-8"?>
<linearLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:layout_gravity="center_vertical|center_horizontal"
	android:orientation="vertical">
 
	<imageView
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_gravity="center_horizontal"
		android:src="@drawable/tex"
		/>
 
	<textView
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_gravity="center_horizontal"
		android:text="@string/hello"
		android:textColor="@color/white"
		android:textSize="@dimen/dim_hello" />
 
</linearLayout>

De façon globale, l’interface graphique précédente dispose d’un unique élément LinearLayout à la racine englobant deux autres éléments ImageView et TextView. Etudions maintenant plus en détail l’utilité de ses éléments et surtout leurs attributs. Lorsqu’on créé une interface graphique, on souhaite “ranger” les composants graphiques afin que ces derniers s’affiche à l’écran. Parmi les possibilités les plus courantes, on trouve :

Dans notre cas, on souhaite afficher les éléments les uns au dessous des autres. On utilise donc un LinearLayout. Les attributs de l’élément sont ensuite les suivants :

On insère ensuite dans le layout l’image. Cette dernière est incluse grâce à la vue ImageView à laquelle on assigne, grâce à l’attribut android:src, l’image de la mascotte. Cette image a pour nom original “tex.png” et se trouve dans le dossier drawable. Pour l’inclure on utilise donc la syntaxe @drawable/ suivi de son nom sans l’extension. L’inclusion d’une zone de texte suit la même logique. On utilise une TextView à laquelle on associe les différentes valeurs préparées en début de partie. La valeur android:text se trouve dans le fichier strings.xml, on y accède donc par @string/hello.De la même façon, on accède à la couleur par @color/white et à la dimension par @dimen/dim_hello. Notre interface graphique est maintenant terminée. Il nous reste à l’utiliser dans notre code Java. Il suffit de se rendre dans HelloWorld.java. Ce fichier contient le code suivant :

package com.cyrilmottier.android.helloworld;
 
import android.app.Activity;
 
import android.os.Bundle;
 
public class HelloWorld extends Activity {
 
    /** Called when the activity is first created. */
 
    @Override
 
    public void onCreate(Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.main);
 
    }
 
}

On ne peut pas faire plus simple ! HelloWorld hérite bien d’Activity et c’est ce que nous souhaitons puisque, comme expliqué dans la partie 2, une activité permet d’afficher une interface graphique à l’utilisateur. La mise en place de notre interface graphique s’effectue simplement en redéfinissant la méthode onCreate. On applique simplement la vue créée à l’aide de setContentView(int). L’entier passé à cette méthode est la référence de notre layout. C’est ici qu’on utilise le fichier automatiquement géré R.java. Si vous n’avez pas changé le nom du fichier de votre interface graphique, il devrait être référencé par R.layout.main.

Nous y voilà ! Notre “Hello World” est prêt ! Cela peut sembler incroyable puisque nous n’avons presque pas écrit de code Java. C’est là que se trouve une des puissances d’Android : l’instanciation d’objets par XML. Nous avons créé ici une interface graphique mais d’autres objets non graphiques sont également instanciables via XML. Vous pouvez maintenant lancer votre premier programme sur l’émulateur et contempler le résultat :

hello-android

Pour aller plus loin :

53 commentaires sur "Tutoriel Android : "Hello World" version 1.5" :

  • Yeri le 22/04/2009

    Hello,
    Très bien les tutos, je me rèfère aussi sur les Dev Guides du site google developer.android.com, mais içi l’horizon s’éclairci mieux! Sinon j’ai un soucis avec l’installation de l’ADT 0.9 sur Eclipse (ganymede), Eclipse se plaint de ne pas accéder le site https://dl-ssl.google.com/android/eclipse/ (ne doit-il pas installer une version local de l’adt avec cette pre version 1.5?). Une petite idée ?

  • Yeri le 22/04/2009

    Ok alors désolé, j’ai pu installer la partie local de l’adt ( le jar file) en sélectionant le jar et cliquer sur Install. Eclipse semble ne pas se préoccuper de l’accès sur l’URL.
    Je vais pouvoir tester tes suggestions du Hello World sur l’émulateur … en attendant de le faire ‘pour de vrai’ sur le HTC Magic, qui est prévu en Suisse pour … fin Mai !

  • Cyril Mottier le 22/04/2009

    Attention, si tu souhaites mettre la early-look de ADT (la 0.9) si je me rappelle bien, il faut télécharger le zip sur http://developer.android.com/sdk/preview/.
    En ce qui concerne l’impossibilité de télécharger ADT à partir de l’URL https://dl-ssl.google.com/android/eclipse/ (version compatible Android 1.1), il faut tenter de passer en http et ça marchera normalement.

  • PointGPhone le 22/04/2009

    Cool :)

    Tiens d’ailleurs ya des sites suisses qui parlent d’Android?

  • Yeri le 22/04/2009

    @Cyril:
    Merci pour la précision, c’est bien celle-là que j’ai récupérée, ça fonctionne.
    @Loic:
    Je n’ai pas vu encore, de site dédié

  • john smith le 24/04/2009

    @yeri : essait avec cette adresse
    http://dl-ssl.google.com/android/eclipse/ en gros la même mais en http mais pas en https

  • Cyril Mottier le 24/04/2009

    C’est ce que je disais John ;) Mais merci :p

  • MilHouZ le 6/05/2009

    @Yeri
    Test d’installer le plugin en utilisant cette adresse (enlève le ’s’ de http) et le slash à la fin de l’uri :
    http://dl-ssl.google.com/android/eclipse

    Chez moi ça fonctionne comme ça…

  • Luffy le 28/05/2009

    Très bon tuto ;-) à quand le prochain ?
    Surtout que sur la plupart des sites on retrouve différentes version du “hello word”
    Mais malheureusement je n’ais retrouvé aucun (francophone) avec par exemple une simple application interactif avec un bouton valide ou autre.
    ^^ si quelqu’un en connait je suis preneur.
    Merci.

  • Cyril Mottier le 28/05/2009

    Bonjour Luffy !

    Merci pour les encouragements. Une suite existe bel et bien mais n’est pas encore disponible sur ce site. Nous sommes tous un peu overbooké d’où le retard. Je suis sur qu’en cherchant sur mon blog tu le trouvera et pourra le lire en avant première ;)

  • Luffy le 31/05/2009

    Effectivement il en existe de plus en plus mais bon erreur habituel de débutant je n’avait pas encore suffisamment chercher.
    Bonne continuation en espérant bientôt voir Android devenir aussi rependu par rapport à l’iphone que windows par rapport au mac…

  • sweet le 6/07/2009

    Salut tout d’abord je voudrais dire que le tuto est très bon.
    Par contre j’ai un petit soucis sur les modifications à apporter au fichier Java ce n’est pas très clair comme tu le dis on a l’impression qu’il n’y a aucunes modification à apporter cependant quand je “run” mon application (sans avoir apporter de modification dans le fichier .java) l’émulateur me signale une erreur…
    Si tu pouvais m’aider à résoudre ce petit problème je t’en serais très reconnaissant
    Merci

  • sweet le 7/07/2009

    Soucis résolu merci bcp pour ce tuto ^^

  • AgR le 15/07/2009

    Suis-je la seule à ne pas pouvoir voir le code si dessous :

    “Le code ci-dessous représente l’interface graphique voulue :

    De façon globale,….”

    j’ai essayé avec Safari, Firefox et même internet Explorer…

    merci…

  • PointGPhone le 15/07/2009

    C’est corrigé, mea culpa !

  • AgR le 16/07/2009

    merci…

    et sans vouloir abuser, le lien sensé donner les sources envoie sur une erreur 404… :
    http://www.pointgphone.com/files/part3.zip

    si tu pouvais corriger ça aussi ça serai sympa !

  • AgR le 16/07/2009

    reponse à ma propre question :

    lien (qui marche !) avec les fichiers :

    http://android.cyrilmottier.co...../part3.zip

  • Dayn le 22/07/2009

    ***************************************************************************
    sweet
    6/07/2009

    Salut tout d’abord je voudrais dire que le tuto est très bon.
    Par contre j’ai un petit soucis sur les modifications à apporter au fichier Java ce n’est pas très clair comme tu le dis on a l’impression qu’il n’y a aucunes modification à apporter cependant quand je “run” mon application (sans avoir apporter de modification dans le fichier .java) l’émulateur me signale une erreur…
    Si tu pouvais m’aider à résoudre ce petit problème je t’en serais très reconnaissant
    Merci
    #
    sweet
    7/07/2009

    Soucis résolu merci bcp pour ce tuto ^^
    ****************************************************************************

    Il m’arrive la même chose, je n’arrive pas à mettre à jour le fichier R.java lorsque j’ajoute un fichier .png dans drawable.

    Apparemment tu à réussi à trouver la solution. Peux-tu m’aider stp !!

    Dayn

  • Dayn le 28/07/2009

    Please !!!

  • Dayn le 28/07/2009

    pour ceux qui galère comme moi avec un truc aussi ridicule !!!
    Il faut tout simplement ajouté le fichier .png et dans le .java

    par exemple ecrire:

    mTabHost.addTab(mTabHost.newTabSpec(“tab_test2″)
    .setIndicator(“TAB 2″, getResources().getDrawable(R.drawable.config-32.png));

    une erreur se produit à gauche cliquer sur la petit croix rouge et il vous propose de créer la variable static dans le fichier R.java automatiquement.

    lol tout ça pr ça

  • Dayn le 28/07/2009

    ne pas mettre le .png just le nom “config” par exemple dsl

  • kronos le 15/08/2009

    Super tuto ! merci :)

    Juste une petite question qui me turlupine…

    Pourquoi, alors que le fichier s’appelle “dimensions.xml” le chemin dans le fichier main.xml est “@dimen/…” et idem dans R.java, la classe se nomme “dimen” et non dimensions ?!

  • Crash le 16/08/2009

    Bonjour,

    J’ai une erreur dans mon main.xml après l’avoir modifié comme indiqué dans le tuto (j’ai même fait un copier/coller), celui-ci me renvoi : classnotfoundexception: null

    merci de votre aide

  • Anthoid le 17/08/2009

    Tout d’abord bravo et merci pour cet excellent (et pour les autres aussi)
    Après avoir suivi à la lettre ce tuto et relu plusieurs fois plusieurs passage je ne comprends toujours pas pourquoi j’obtiens un violent “Sorry – The application HelloWorld(process..) hars stopped unexpectedly. Please try again.” lorsque j’éxecute l’application sur le simulateur.

    voila si jamais tu aurais une idée … c’est frustrant

    P.S je n’ai pas mis la même image que dans le tuto mais je pense que cela n’a aucun incident

  • Valentin le 17/08/2009

    J’ai le meme probleme que les personnes au dessus (crash sur l’ému + class not found)

  • Anthoid le 17/08/2009

    Ok problème résolu je m’auto-réponds au cas ou si dans le futur quelqu’un a le même problème que moi.
    Le problème est tout bête, j’ai copier la partie du code du main.xml

    Or celui-ci n’est pas bon car ne possede pas de majuscules à “LinearLayout, ImageView et enfin TextView”

    voila c’est tout! merci encore pour le tuto ++

  • Valentin le 17/08/2009

    J’ai trouver le probleme, ca vient du balisage incorrecte. Essayez ca:

  • Valentin le 17/08/2009

    Grilled plus owned par la copie du xml sur une page web :)

  • Nicolas le 21/08/2009

    Bon tuto, par contre j’ai une question,

    si on souhaite mettre l’appli sur notre tél, comment faire ?

  • Cyril Mottier le 7/09/2009

    Bonjour tout le monde !

    Je m’excuse pour le retard dans les réponses mais j’ai pris de tellement grandes vacances que je suis revenu un peu “largué” :p.
    Pour ce qui est des problèmes de XML (majuscules, etc.) c’est un problème du à Wordpress (framework utilisé pour afficher ce site). Comme le mentionne Anthoid il faut des majuscule au début (comme pour les noms de classes Java).
    Pour lee reste, je crois que tout le monde a à peu près résolu ses problèmes. Si ce n’est pas le cas, n’hésitez pas à reposter ici :p

  • Bonjour,

    J’ai beaucoup apprecie ton tutoriel, il est tres clair. Cependant je n’arrive pas a exporter avec run. Je suis sous eclipse galileo.

    J avais commence par avoir un probleme d’exportation, il etait indique.
    ERROR: Application does not specify a
    android.test.InstrumentationTestRunner instrumentation or does not
    declare uses-library android.test.runner”

    Puis j ai suivi les instructions de ce site:
    http://groups.google.com/group.....&pli=1

    En ajoutant ce code dans le manifeste comme indique:
    <uses-library android:name="android.test.runner" /

    Et maintenant le message d erreur a disparu sauf que lorsque j exporte, il n y a que l emulateur qui s ouvre.

    Aurais tu une solution ?

    Merci d'avance et encore bravo pour le tuto

    Olivier

  • Squ36 le 12/10/2009

    Bonsoir à tous.
    Je voudrais d’abord te remercier pour ce tutoriel très bien expliqué.
    Je souhaiterais également te poser une question. J’ai effectué toutes les modifications que tu as indiqué dans ton tuto, mais lorsque je veux lancer la version finale de l’application, j’ai droit à un “force close”. As-tu une idée d’où ça peux venir ?
    Si tu as besoin de plus de détails, n’hésite pas.
    Merci encore.
    Romain

  • Squ36 le 12/10/2009

    Bon, je viens de comprendre ma bêtise en lisant les commentaires… Ca m’apprendra à être un peu plus attentif. Désolé pour le spam…

  • Cyril Mottier le 12/10/2009

    @Olivier Dupont-Gatelmand : c’est probablement parce que tu tente de lancer tn programme ne temps que test unitaire … or c’est un programme pas un test unitaire. dans le “Play” choisit la bonne option.

    @Squ36 : Parfait :p car je ne vois pas d’où ce genre d’erreur “force close” peut venir :)

  • aorta le 22/12/2009

    Bonjour, tout d’abord le tuto est tres bien, il est pafaitement compréhensible mais j’ai un petit probleme avec le mail.xml pour l’image : apparament eclipse ne trouve pas le tex.png, j’ai essayé avec le fichier icon.png, il ne me jete pas, mais j’ai un force close quand j’execute le programme sur l’émulateur, vous savez d’ou ça peut venir ?

    Bonne journée.

  • Cyril Mottier le 22/12/2009

    Pourrais tu expliquer l’Exception que tu obtiens?

  • David le 29/12/2009

    Personnellement j’ai une question à laquelle vous pourrez surement répondre :

    Quelque soit la version que j’utilise (1.5, 1.6), j’ai ce message qui apparait, tout le temps.
    http://vixenshockey.free.fr/screen_android.JPG

    Une solution ?

  • Cyril Mottier le 29/12/2009

    Regarde le “Logcat” dans Eclipse pour avoir plus d’information sur l’erreur. Cette boîte de dialogue est simplement due à une Exception dans ton programme.

  • David le 29/12/2009

    Je suis désolé je n’y connais vraiment rien encore je me lance à peine, je te laisse regarder, surement que tu trouveras où l’erreur se situe.

    http://vixenshockey.free.fr/logcat.txt

  • Cyril Mottier le 29/12/2009

    Tu as un problème au niveau de “l’inflate” XML : “java.lang.ClassNotFoundException: android.view.linearLayout in loader” … En clair, il semblerait que tu est oublié d’inclure le jar android ou un truc du genre ;)

  • David le 29/12/2009

    Là c’est bon je suis perdu lol je comprends pas, tu pourrais m’expliquer comment inclure ce fichier jar s’il te plait ?

  • David le 29/12/2009

    Voila, j’ai réinstaller trois fois le tout cet apres midi mais il n’y a pas moyen, je dois oublier quelque chose.

    http://vixenshockey.free.fr/screen.JPG
    http://vixenshockey.free.fr/erreur.txt

  • Cyril Mottier le 29/12/2009

    Avec ce que tu me donne, tout me semble correct. C’est bizarre. Envoie moi un export de ton projet et je regarderai au plus vite

  • David le 29/12/2009

    Le voila -> http://vixenshockey.free.fr/HelloWorld.rar
    ;)

  • David le 29/12/2009

    Ca y est, ça marche, j’ai compris !
    Eclipse plantais car le code est “LinearLayout” et non “linearlayout”, eh beh dis donc j’en ai laissé des cheuveux aujourd’hui ^^

    Encore merci Cyril pour ton tuto et ton aide, bien que j’ai galéré je suis plus motivé que jamais, j’attends avec impatience tes prochains tuto (en espérant un peu d’évènementiel et d’objet ;) )

  • Cyril Mottier le 30/12/2009

    J’allais justement te répondre car je venais de regarder ton zip :) . On va me dire que je fais de la publicité, mais si tu souhaites avoir des articles divers sur Android, je ne pourrais que te suggérer de lire directement mon blog personnel à l’adresse suivante : http://android.cyrilmottier.com

  • Stéphane le 11/01/2010

    Bonjour, j’ai vu que vous développez sur Android, j’ai une question simple surement pour vous mais je ne trouve pas la réponse sur le net. J’ai fais le projet “hello world” du site http://www.pointgphone.com il marche bien sur le tel virtuel mais je n’arrive pas à voir mon samsung Galaxy sur eclipse pour faire le run dessus. Si vous avez un tuyau je sur preneur. Merci d’avance.

  • Thierry le 14/02/2010

    Bonjour,

    Je débute en java & ” en android ” . Je pense avoir suivi le tuto à la lettre, quand je lance le prog, je n’ai aucun message d’erreur.

    L’émulateur s’affiche bien mais j’obtiens juste le mot ” ANDROID _ ” qui clignote. Je pense avoir oublié quelque chose dans la config mais je n’y connais absolument rien.

    Avez vous une idée svp ?

    Merci d’avance

  • Cyril Mottier le 14/02/2010

    @Stéphane : il faut que ton Galaxy soit configuré pour le développement et que les drivers soient installés sur ta machine.

    @Thierry : démarrer l’émulateur est parfois une opération longue. Il arrive aussi qu’il ne démarre pas. Quand c’est comme ça, je le ferme et le réouvre. Je n’ai jamais eu de problème où l’émulateur ne démarre pas du tout.

  • Thierry le 14/02/2010

    Merci Cyril ! Autant pour moi, il me fallait juste un peu de patience, j’ai redémarré et il fonctionne :)

  • Djipe le 16/02/2010

    Salut,

    Merci Cyril d’avoir consacré autant de temps pour ce tuto et surtout pour son suivi.

    En ce qui me concerne, j’ai eu qques difficultés à suivre le tuto :
    Pour remettre les choses en place, j’suis mécano à la base et je ne connais que le visual-pascal et l’assembleur. Donc complètement newbie sur Java et Eclipse.

    Donc, sur ton tuto, des fois, j’ai du mal à distinguer les actions des commentaires.
    J’pense que ce sont 2 notions distinctes qu’il pourrait être intéressant d’afficher de manière parallèle plutôt qu’imbriqués ;)

    Pour le glisser-déposer, j’ai rencontré qques difficultés : ça m’a pas semblé très clair. Comme le fichier icon.pgn était déjà existant dans drawable, j’ai rien fait.
    Puis les compilations me renvoyaient un message d’erreur.
    Là, j’ai remarqué qu’il cherchait tex.pgn. J’ai donc remplacé tex par icon.
    Puis par la suite dans le répertoir drawable du projet, j’ai duppliqué icon.pgn et renomé en tex.pgn.
    Maintenant, j’ai la compilation qui se lance, mais j’ai un message d’erreur sur l’émulateur :
    ” The application HelloWorld (process com.cyrilmottier.android.helloworld) has stopped unexpectedely. Please try again”
    A chaque fois que j’try again, j’ai le même message :(

  • Cyril Mottier le 16/02/2010

    @Djipe : Android est fait pour tous donc y’a pas d’exclus lorsqu’il s’agit de programmer sur cette belle plateforme :)
    Lorsque je parlais du glisser-déposer c’était de l’image que je parlais (du tex.png). C’est tex.ong qui sera utilisé par la suite pour s’afficher à l’écran. icon.ong c’est l’image qui sera utilisée comme icon du projet.
    Avec les erreurs que tu me donnes là je ne peux pas trop t’aider. Eclipse (et ADT) fournissent un outil pratique : LogCat : c’est une console d’erreur qui te permet de lire les problèmes qu’il y a eu durant l’exécution de ton programme.
    Ouvre là et dis moi ce qui ne va pas mais à mon avis le problème vient du layout : Il faut des lettres capitales à TextView, LinearLayout et ImageView … le moteur de ce blog les remets toujours en minuscule mais ça n’est pas bon :( .

  • Djipe le 16/02/2010

    Bravo et merci pour ta réactivié !

    Voilà ce qu’il me renvoit dans la console :
    [2010-02-16 17:13:07 - HelloWorld1]ActivityManager: Can’t dispatch DDM chunk 46454154: no handler defined
    [2010-02-16 17:13:07 - HelloWorld1]ActivityManager: Can’t dispatch DDM chunk 4d505251: no handler defined
    [2010-02-16 17:13:17 - HelloWorld1]ActivityManager: Starting: Intent { comp={com.cyrilmottier.android.hellworld/com.cyrilmottier.android.hellworld.HelloWorld} }

    Je viens d’ajouter les Majuscules. Et là, ça marche !
    Franchement, comme disent les ricains, Cyril, you’r brilliane

    Pour l’imge, j’suis dsl de paraître simple d’esprit :( Mais j’ai pas encore compris :
    Je dois prendre quoi et d’où pour le placer où ? Mais bon, c’est pas trop grave puisque ça fonctionne ;)

    Comme à l’époque du CPC6128, j’vais remplacer “Hello World” par “Pan sur les envahisseur” et ça me fera un jeu d’arcade tout en 3D !
    Ah, c’est pas comme ça que ça marche ici non plus :(

    En tout cas merci : par ce que maintenant, grâce à toi, j’sais comment démarrer un prog.

Exprimez-vous en laissant un commentaire !

Les commentaires ne sont pas modérés avant leur publication alors n'hésitez à vous exprimer librement.

Une seule règle : Rester un minimum poli et constructif.

Vous avez des questions d'ordre général à poser? Direction le forum.