Première application : Hello « moi » [Tutoriel Android n°3]
Comme promis sur Twitter voici le premier tutoriel de développement Android. Si vous n’avez pas installé le SDK Android pour Eclipse ou Netbeans faites-le c’est indispensable. Nous allons donc faire aujourd’hui une petite variante du Hello World, le Hello « Moi ».
Création d’un projet Android
Alors pour commencer cliquez sur File >>> New >>> Android Project. Il se peut que le menu Android Project ne soit pas directement disponible, il faut alors faire File >>> New >>> Other… >>> Android >>> Android Project. Une fenêtre de création de nouveau projet Android va s’ouvrir et vous devrez y renseigner le nom du projet, la version minimal du SDK, le nom de l’application, le nom du package, le nom de l’activité créée automatiquement et enfin indiquer le numéro de l’API de la version du SDK. Bon après avoir débité mon charabia je vous mets un petit screen de ce que j’ai fait pour créer ma première application Android.
Quelques petites explications s’imposent peut être. Je pense que le nom du projet et le nom de l’application ne pose pas de problème moi j’ai mis le même nom mais il est possible de mettre deux noms différents. Le nom du package se forme également à votre convenance pas trop de changement par rapport au développement JAVA. La checkBox »Create Activity » permet de créer d’emblée une activité, c’est à dire pour faire simple une classe java qui sera exécutée par l’intermédiaire de vues. Le nom de cette activité ne doit pas être obligatoirement le même que celui du projet ou de l’application. Enfin il est nécessaire de cocher la version de la plate-forme sur laquelle on souhaite développer. Ici, moi j’ai choisi Android 1.6 (car la plupart des téléphones tournent au minimum sous Android 1.6, sauf mon HTC Hero qui tourne sous Android 1.5 mais bon… ), ensuite vous pouvez indiquer la version minimum du SDK qui correspond au chiffre dans la colonne API…
Une fois tout cela rempli, cliquez sur Finish et vous devez avoir un projet Android qui s’est créé de la façon suivante :
Sans rien toucher au projet nous allons compiler et lancer l’application, pour cela faites un clic droit sur le projet puis Run as >>> Android Application
Note : il se peut que votre projet contienne une erreur lors de sa création (petite croix rouge à côté du projet), je ne sais pas à quoi c’est dû mais le seul moyen que j’ai trouvé pour résoudre ce problème, c’est de fermer Eclipse et de l’ouvrir de nouveau. Et normalement tout devrait fonctionner.
Vous allez sûrement avoir un message vous demandant de configurer un nouvel AVD (Android Virtual Device), ce qui signifie que l’on doit configurer l’émulateur Android. Pour ceux qui l’ont déjà fait vous n’avez pas besoin de le refaire.
Configuration d’un nouvel AVD (Android Virtual Device)
Voici le message dont je viens de vous parler :
Cliquez sur Yes. La fenêtre « AVD Manager » apparait cliquez sur New.
Remplissez les champs de la fenêtre de création d’un nouvel AVD comme ci-dessous puis Create AVD et ensuite sur Launch :
Et normalement après un petit temps de chargement vous devriez voir apparaître sous vos yeux ébahis ceci :
Bon maintenant passons aux choses sérieuses (si je puis dire à notre niveau…) et commençons à programmer un petit peu.
Android : JAVA et surtout XML
IMPORTANT : N’oubliez pas d’enregistrer le projet après chaque étape (Ctrl + S)
Et oui la programmation sous Android nécessite d’utiliser du XML, mais vous verrez cela n’est pas très compliqué, alors commençons. Pour cela double cliquez sur le fichier strings.xml situé dans res >>> values et modifiez l’attribut app_name (un simple clic suffit) en lui indiquant dans le champ Value « Hello moi » (par exemple). Vous venez de changer le nom de votre application. Ainsi, avant, en haut à gauche de votre application il y avait écrit « Tutoriel1_Android », et il y aura désormais écrit « Hello moi ».
Maintenant supprimez l’attribut hello (un simple clic sur l’attribut puis cliquez sur le bouton Remove…), nous allons en créer de nouveaux (cf. ci-dessus). Pour cela, cliquez sur Add… choisissez String puis cliquez sur OK. Ensuite, inscrivez dans le champ Name : « prenom » et dans le champ Value : « Entrez votre prénom : » . Répétez l’opération d’ajout avec les couples Name/Value suivant : « prenomHint/Tapez votre prénom » et « bouton/Envoyer« .
Créons maintenant de nouveaux fichiers XML pour mettre un peu de couleurs et de grandeurs par la suite. Faites un clic droit sur le dossier values (à gauche cf. image ci-dessus) cliquez sur New >>> Android XML File puis remplissez le champ File par dimensions.xml puis cochez Values et cliquez sur Finish. Créez ensuite un nouvel attribut de type Dimension (de la même manière que précédemment pour le fichier strings.xml) avec le couple Name/Value suivant : « dimMessage/30px ». Créez de la même façon un fichier colors.xml, puis ajoutez lui un attribut de type Color avec le couple Name/Value suivant : « couleurMessage/#ffa800 « .
Création de l’interface graphique
Maintenant ouvrez le fichier main.xml (qui se situe dans res >>> layout) et copiez/collez ceci :
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/TextViewPrenom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/prenom" /> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" > <EditText android:id="@+id/EditTextPrenom" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="bottom" android:hint="@string/prenomHint" /> <Button android:id="@+id/ButtonEnvoyer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/bouton" /> </LinearLayout> <TextView android:id="@+id/TextViewHello" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_gravity="center_horizontal" android:textSize="@dimen/dimMessage" android:textColor="@color/couleurMessage" /> </LinearLayout>
Les explications :
- android:id >>> permet de donner un id à l’élément que l’on créer, ce qui nous permettra de le récupérer dans notre code java plus tard
- android:layout_width et android:layout_height>>>permet de définir le remplissage de l’élément (en largeur et en hauteur)
- fill_parent >>> indique que l’élément prend toute la place disponible (en largeur et/ou en hauteur)
- wrap_content >>> indique que l’élément prend uniquement la place qu’il a besoins (en largeur et/ou en hauteur)
- android:layout_gravity >>> permet de préciser la position de l’élément (center_horizontal, center_vertical, etc…)
- android:text >>> permet de configurer le texte qui s’affichera, ici dans notre exemple on utilise les attributs du fichier strings.xml que l’on a créé tout à l’heure
- android:textSize >>> permet de configurer la taille du texte, on utilise cette fois l’attribut du fichierdimensions.xml
- android:textColor >>> permet de configurer la couleur du texte, on utilise cette fois l’attribut du fichiercolors.xml
- android:hint >>> permet de configurer le texte qui s’affichera lorsque EditText est vide, et encore une fois on utilise un attribut du fichier strings.xml
- android:layout_weight >>> je n’ai pas trop compris à quoi ça sert
il me semble que c’est un poids déterminant la taille de l’élément par rapport à l’autre ainsi l’EditText prendra plus de place que le Button. Si un spécialiste passe par ici, qu’il nous éclaire
Voilà pour les petites explications si vous n’avez pas compris quelques choses laissez votre question en commentaire. Maintenant si l’on compile et lance l’application on devrait obtenir ceci :
Création de l’évènement en JAVA
Si tout est ok continuons et commençons à programmer en JAVA. Il va falloir mettre un écouteur d’évènement sur le bouton « Envoyer » pour récupérer le texte que vous aurez entré préalablement dans l’EditText, et afficher « Hello votrePrenom » de deux manières. Je vous donne directement le code commenté, il ne vous reste plus qu’à faire un copier/coller dans le fichier Tutoriel1_Android.java.
package com.tutomobile.android.tuto1; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class Tutoriel1_Android extends Activity { private EditText editText; private Button button; private String prenom; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //récupération de l'EditText grâce à son ID editText = (EditText) findViewById(R.id.EditTextPrenom); //récupération du bouton grâce à son ID button = (Button) findViewById(R.id.ButtonEnvoyer); //on applique un écouteur d'évenement au clique sur le bouton button.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { //on réupère le texte écrit dans l'EditText prenom = editText.getText().toString(); //on affiche "Hello votrePrenom ! " dans une petit pop-up qui s'affiche quelques seconde en bas d'écran Toast.makeText(Tutoriel1_Android.this, "Hello " + prenom + " !", Toast.LENGTH_LONG).show(); /*on affiche "Hello votrePrenom ! " dans un textView que l'on a créé tout à l'heure * et dont on avait pas précisé la valeur de son texte il s'agit du dernier TextView dans le fichier main.xml * De toute façon grâce à l'ID vous devrez facilement le trouver dans le fichier main.xml */ ((TextView)findViewById(R.id.TextViewHello)).setText("Hello " + prenom + " !"); } } ); } }
Une fois que vous avez mis en place ce code JAVA, si vous lancez l’application, que vous entrez votre prénom et que vous cliquez sur le bouton « Envoyer » vous devriez voir apparaître ceci :
Voici la fin de ce premier tutoriel d’application Android, j’espère qu’il vous aura plu et surtout qu’il aura été clair. Si jamais vous avez une question bête ou compliqué, laissez un commentaire et j’essaierai d’y répondre quoi qu’il arrive car elle ne pourra que me faire progresser.
A bientôt, pour un nouveau tutoriel d’application Android et n’hésitez pas à partager ce tuto sur FaceBook ou Twitter
PS : désolé pour les fautes d’orthographe mais n’hésitez pas à me les dire je les corrigerai…
Tutoriel inspiré du tuto de pointgphone et du livre Programmation Android (Edition Eyrolles)

Cette création par Tuto Mobile est mise à disposition selon les termes de la licence Creative Commons Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique 3.0 Unported.
Encore un peu de lecture :
-
Gestion des Preferences [Tutoriel Android n°25] -
Uri Scheme [Tutoriel WebApps n°2] -
Mon premier Widget sous Android [Tutoriel Android n°25]

















Je viens de voir qu’un tuto était fait pour ça, je retire donc ma question. Désolé !
salut je vous remercie pour tout votre aide ..vraiment ces sont des bons Tutorial,je suis entrain de préparer mon projet fin d’étude mais je ne sait pas le syntaxe de programmation .j’attend votre réponse et merci pour votre aide d’avant
Bonjour et merci pour la qualité de vos tutos.
J’ai une question concernant le layout. Je vois que concernant les noms des objets, vous faites référence aux fichiers xml strings, dimensions et colors.
pourquoi dans le layout il est écrit ceci :
android:textSize= »@dimen/dimMessage »
et non cela :
android:textSize= »@dimensions/dimMessage »
idem pour color qui n’a pas de « s »
j’ai constaté que cela génère une erreur si je le change.
y a-t-il une règle ? (car string fait 6 caractères alors que dimen en fait 5…)
D’avance merci,
Cordialement
@Nassertom : Il n’y a pas de règle à ma connaissance, la seule règle c’est que pour une dimension c’est @dimen et pour une couleur c’est @color…
salut, j’ai un petit soucis lors de la creation de fichier xml, j’ai ce message d’erreur
» Error in an XML file: aborting build. »
voila si quelqu’un peut m’aider merci bcp.
Merci pour ce tuto, Il est très intéressant.
@Erwan: fait un clique droit sur ton fichier puis « Open with » et tu choisis « XML Editor ». Ensuite tu cliques sur « Source » en bas de la fenêtre de ton fichier.
@Nassertom : Regarde le source du fichier XML (en bas de l’éditeur, tu peux switcher entre l’éditeur facile et le code source). Le Tag Name s’appelle « dimen » pour dimensions. Donc, ce n’est pas une invention, ça correspond au Tag Name dans les fichiers XML.
Peu importe qu’ils soient dans un fichier dimensions ou autre, du moment qu’il est enfant de resources, il sera cherché là dedans. Le fait de les mettre dans des fichiers séparés aident à retrouver les paramètres dans cet exemple. Mais on aurait pu tous les mettre au même endroit.
Bonjour, moi j’ai une croix rouge sur le fichier ‘AndroidManifest.xml’
J’ai essayé 2-3 truc mais rien ne fait partir cette erreur si quelqu’un a eu le même problème et qu’il l’a résolue passe par la…
Merci pour ce tuto en tout cas.
salut svp j’ai un probléme au niveau partie xml
voila type de erreur
error: Error: No resource found that matches the given name (at ‘textColor’ with value ‘@color/couleurMessage’). main.xml /Tutoriel1_Android/res/layout line 34 Android AAPT Problem
merci
comment on fait la partie java, j’ai pas trouvé où mettre le code ?
j’ai trouvé ou mettre le code
j’ai une erreur avec id.ButtonEnvoyer et id.EditTextPrenom
J’ai réalisé ce tutoriel, mais je n’obtiens pas les resultats escomptés.
Sur l’ecran de mon emulateur, je vois le message NO SERVICE.
J’utilise la version 2.2 du SDK de ANDROID.
Merci
J’ai rencontré ce bug :
Eclipse me soulignait le R de cette ligne à la création du projet.
setContentView(R.layout.main);
La solution est de placer dans la zone des import cette ligne :
import android.R;
et de la supprimer ensuite (doc Android).
Voila, si ça peut aider certains…
Merci pour le tutoriel mais n’y a t-il pas une erreur dans le code?
public class Tutoriel1_Android extends Activity {
car moi j’ai dû mettre :
public class Tutoriel1_AndroidActivity extends Activity {
Enfin c’est peut être car je n’ai pas Tutoriel1_Android.java mais Tutoriel1_AndroidActivity.java
Pourquoi je n’ai pas la même chose alors que j’ai tout écris pareil que dans le tuto?
Enfin ça marche quand même ^^
Merci !
Mais petite question de débutant… Mais comment fait-on pour transférer cette belle application sur son portable ou sa tablette ?
Merci de vos réponses !
Bonjour et merci pour le tuto
Mais quand je rentre le code dans le fichier « Tutoriel1_Android.java » éclipse me trouve tout plein d’erreurs (notement il me souligne tout les « R » ,j’ai donc essayé de faire ce que Mc Flurry a dit mais sa n’a rein donner …
Il me souligne aussi : « onClick(View v) »
Help me please
Merci pour le tuto. bein j fé un premier test é ça marche après j’ai voulu travailler sur mon projet alors après avoir tt effacer j vx dire les devices déjà créés et les projets j voulais créer un nouveau device et ça donne ça [2011-08-08 09:12:40 - SDK Manager] Error: Target location is not inside the SDK.
[2011-08-08 09:12:40 - SDK Manager] Failed to set image path properties in the AVD folder.
Super tuto merci!
J’ai juste un problème: Quand je copie ton fichier xml et que je compile, ca m’affiche toujours la même chose. Càd écran noir avec « A N D R O I D _ » au mileu. Pourtant, celà s’affiche bien dans le « Graphical Layout » du fichier main.xml…
Que faire?
Merci pour ce tutoriel. C’est parfait pour commencer.
Je ne trouves pas où coller le texte de la partie java ?
Je me réponds… Pour ceux qui cherches comme moi.
src->com.tutomobile.android.tuto1->Tutoriel1_androidActivity.java
Double clic pour éditer.
Salut,
Très bien ce tuto ! J’ai tout fait comme tu dis mais il m’affiche une erreur dans le fichier .java sur le @overide juste après le OnClickListener() … Le mosieur me dit » Multiple markers at this line » et me recommande de zapper le @override juste au dessus … Du coup je le supprime, ca fonctionne nickel sauf que j’ai beau tapper ce que je veux dans le champs texte, il ne m’affiche que la string sans ma variable prenom … comme si prenom == « » … une solution ?
Merci
Yop,
Merci bien pour ce super tuto pour commencer à prendre en main Android.
Great Job =)
bonjour,
j’ai suivi a la lettre tout le tuto mais a la fin quand je compile je n’ai pas le Hello World.. ça m’affiche seulement le mot ‘Android’… HELP PLEASE
bonjour,
pour ceux à qui s’affiche le logo android… patientez et l’appli va se lancer. en effet le ADV est tres tres long a se lancer.
comme phiphi36 j’ai eu une petite erreur sur la methode onclick(view v)
« must override a superclass method ».
du coup j’ai viré le @override
et ca marche.
du coup je me demande à quoi sert ce @override.
la ligne @Override sert a avertir le compilateur que l’on reecrit la methode (celle qui eset juste en dessous)
sinon il y a une erreur
Bonjour , je voudrais vous remercier pour ce beau Tuto.
j ‘ai un problème au niveau du fichier strings.xml , donc j’ai eu ce message dans la console
« »[2011-09-26 11:08:28 - Tutoriel1_Android] Error in an XML file: aborting build. »"
avec des croix rouges sous xml en indiquant « » the word xml is not correctly spelled « »
Merci
Svp j’ai déja posté mon probléme ,est ce que vous pouvez me répondre afin que je puisse continuer a suivre ce cours
voici qcq indications sur mon probléme :
« »Could not open the editor: Android XML Editor Error »"
org.eclipse.core.runtime.CoreException: Error opening the Android XML editor. Is the document an XML file?
at com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor.createTextEditor(AndroidXmlEditor.java:664)
at com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor.createAndroidPages(AndroidXmlEditor.java:228)
at com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor.addPages(AndroidXmlEditor.java:218)
at org.eclipse.ui.forms.editor.FormEditor.createPages(FormEditor.java:138)
at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:357)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:662)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:462)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:286)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2857)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2762)
at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2754)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2705)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2701)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2685)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2676)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:651)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:610)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:361)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:168)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:229)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:208)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:274)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:250)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:373)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$4.open(PackageExplorerPart.java:526)
at org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:48)
at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:842)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.runtime.Platform.run(Platform.java:888)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:840)
at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1101)
at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1205)
at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:264)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:258)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:298)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3880)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3473)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
Tout comme phiphi36 et lolodusud, la methode onClick(View v) est soulignée.
Si je vire le « @override », ça compile, mais l’appli plante sur l’émulateur…
Des idées ?
Merci
Bonjour tout le monde, et merci pour ce tuto.
Je confirme pour le @override. Je l’ai enlevé et ça fonctionne.
J’ai cependant le même problème que Boubaker concernant l’utilisation des éditeurs Android. Quelque soit celui que j’utilise (Android Color Editor, Android Layout Editor, etc…), j’ai toujours le même message d’erreur « Unsupported content type in editor ». Eclipse m’invite à vérifier les associations, mais tout me semble correct. J’ai consulté plusieurs forums qui parlent de ce problème, mais aucune solution proposée ne m’a permis de le résoudre.
Une idée?
Merci.
PS : Pour l’émulateur, préférer le format HVGA qui est beaucoup plus rapide à se lancer.
Bonjour les gens et merci pour ce beau tuto
mais j’ai un problème car en effet au niveau du main.xml, la console m’affiche 2 erreurs
error: Error parsing XML: XML or text declaration not at start of entity main.xml /APLN_premiere_application/res/layout line 5 Android AAPT Problem
et
The processing instruction target matching « [xX][mM][lL] » is not allowed. main.xml /APLN_premiere_application/res/layout line 5 Android XML Format Problem
et la croix rouge au niveau du code se trouve à la première ligne de code, c’est-à-dire :
Pouvez-vous m’aider s’il-vous-plait?
desole jai vu mon erreur, j’ai melangé les tutos
j’ai trouvé l’erreur suivant « Could not open: C:\Users\jmal hamdi\.android/avd/emulat.ini »lors de la creation de mon emulateur avd qu’es ce que je fais? si’l vous plait aidez moi
bonsoir
sil vous plait je trouve tjrs un erreur : »Could not open: C:\Users\jmal hamdi\.android/avd/emulat.ini » lors de la creation d »emulateur avd .aide moi pleaaaaaaaaase