IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Problème avec un HelloWorld


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut Problème avec un HelloWorld
    Bonjour,

    Je débute avec un Xperia U 2.3.7.
    J'ai installé AVD, Eclipse et SDK avec Android 2.3.3(API10) ainsi que le 4.1(API16) Plus Extra Driver USB Google.

    Je fais un premier HelloWorld rudimentaire en suivant ce tutoriel : http://ydisanto.developpez.com/tutor...droid/debuter/
    Dans l'émulateur Eclipse je vois bien mon Coucou :


    Je fais les Keys, j'exporte, j'obtiens un .apk que je transfère sur le téléphone connecté en USB. Dans le répertoire Games j'ai HelloWorld.apk avec un joli Androïd comme icône.
    Je l'installe avec Astro, je le lance tout est OK

    Je fais un deuxième Hello, un peu plus sophistiqué.
    Je suis contraint de faire quelques modifications minimes, problème de version probablement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    package com.tuto.hello;
     
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    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 MainActivity extends Activity {
     
        private EditText editText;
        private Button button;
        private String prenom;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_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(MainActivity.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 + " !");
                }
            }
            );     
        }
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
    }
    Pas même un warning !
    Dans l'émulateur d'Eclipse il arrive... :


    Je fais les Keys, j'exporte, j'obtiens un .apk que je transfère sur le téléphone connecté en USB. Dans le répertoire Games j'ai Hello.apk avec une icône qui ne correspond pas à un fichier Androïd (Enveloppe avec roue crantée devant), et lorsque je tente de l'installer avec Astro j'ai :
    Un problème est survenu lors de l'analyse du kit
    Je suis donc passé en Débogage USB sur le téléphone.
    - Lorsque je lance HelloWorld sur le device Xperia, c'est OK il arrive immédiatement (c'est plus confortable que l'émulateur).
    - Lorsque je lance Hello sur le device Xperia, dans Eclipse j'ai :
    [2012-08-03 19:55:50 - Hello] The connection to adb is down, and a severe error has occured.
    [2012-08-03 19:55:50 - Hello] You must restart adb and Eclipse.
    [2012-08-03 19:55:50 - Hello] Please ensure that adb is correctly located at 'C:\Users\Michel\AppData\Local\Android\android-sdk\platform-tools\adb.exe' and can be executed.
    Comme en dur dans la fenêtre du Android choose driver il est demandé de choisir une version compatible 4.x j'ai fait le même cirque en 4.1 :
    - HelloWorld arrive de suite sur le téléphone
    - Hello rien ne se passe sur téléphone, sur Eclipse en 2.3.3 il y a le message :
    [2012-08-03 20:01:03 - Hello] Android Launch!
    [2012-08-03 20:01:03 - Hello] adb is running normally.
    [2012-08-03 20:01:03 - Hello] Performing com.tuto.hello.MainActivity activity launch
    [2012-08-03 20:01:09 - Hello] ERROR: Application requires API version 16. Device API version is 10 (Android 2.3.7).
    [2012-08-03 20:01:09 - Hello] Launch canceled!
    et en 4.1 ça reste bloqué :

    [2012-08-03 20:12:18 - Hello] Android Launch!
    [2012-08-03 20:12:18 - Hello] adb is running normally.
    [2012-08-03 20:12:18 - Hello] Performing com.tuto.hello.MainActivity activity launch
    Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?

    Merci d'avance à celles et ceux qui voudront bien me donner un coup de main !

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Lorsque je lance Hello sur le device Xperia, dans Eclipse j'ai :
    Quel rapport avec Eclipse ?

    En règle générale (cela a peut-etre changé sur XPeria), mais un téléphone ne peut être à la fois en "debug USB" et en "USB Transfert"... Donc
    * En mode "Debug USB", téléphone branché, tu peux utiliser eclipse pour executer directement un projet sur le XPeria (sans installation manuelle, il fait tout tout seul). L'ADB sera fonctionnel (tout comme le DDMS). ADB = lien debug entre le téléphone et eclipse.
    * En mode "Transfert USB", téléphone branché, tu peux transferer des fichiers entre ta machine et le téléphone, et y installer des APK (Astro ?) mais Eclipse ne le "verra pas", ADB non plus d'ailleurs, et il te faudra signer l'application pour l'installer.

    Le passage du téléphone Debug/Normal se fait toujours téléphone débranché.

    Hello rien ne se passe sur téléphone, sur éclipse en 2.3.3 il y a le message :
    Code :Sélectionner tout - Visualiser dans une fenêtre à part
    [2012-08-03 20:01:03 - Hello] Android Launch!
    [2012-08-03 20:01:03 - Hello] adb is running normally.
    [2012-08-03 20:01:03 - Hello] Performing com.tuto.hello.MainActivity activity launch
    [2012-08-03 20:01:09 - Hello] ERROR: Application requires API version 16. Device API version is 10 (Android 2.3.7).
    [2012-08-03 20:01:09 - Hello] Launch canceled!
    Sur eclipse en 2.3.3.... qu'est ce qui est en 2.3.3 ? L'émulateur ? le programme ? Si c'est du dernier dont tu parles, ce n'est pas le cas, puisque le manifest de l'application demande une API v16 !, si c'est du premier, alors comme l'application demande une APIv16 cela ne marchera pas c'est certain.

    Dans tous les cas, je te conseille, de te préparer ton émulateur, et d'en utiliser qu'un seul à la fois... Le démarrer avant de faire quoique ce soit d'autre, attendre que celui-ci ai bien "booté" (accueil d'android)... Et ensuite, ne plus le fermer tant que tu utilises eclipse...
    Après, l'upload d'applications est instantané...

  3. #3
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    Bonjour et MERCI nicroman pour ta réponse,
    Pardon pour le dérangement Laurent.B et MERCI pour les corrections.

    J'ai tout repris depuis le début, j'essaye de retranscrire de mémoire :
    Je suis parti de Installation du SDK Android :
    http://nbenbourahla.developpez.com/t...-android/#L4.1
    http://developer.android.com/sdk/index.html
    Là il n'y a plus de .zip seulement Install_SDK_Manager-windows.exe qui descend

    PREMIÈRE INSTALLATION (Pour tous les utilisateurs de la machine)
    Par défaut la plateforme 4.1 est proposée, l'installation est limpide.
    Les 2 applis HelloWorld et Hello fonctionnent à partir de Eclipse dans la cible Android 4.1

    Comme la version de l'Android de Xperia est encore 2.3.7, je décide de télécharger cette cible en lançant directement le SDK :
    Dans la cible 2.3.3 je prends SDK Paltform, Google APIs et Sony Xperia Extensions EDK 2.0
    Et là le SDK ne peut pas accéder au répertoire Temp dans l'installation précédente, fichier joint : Install_PlateForme_2.3.3.jpg
    Donc je désinstalle Android et le réinstalle SEULEMENT pour l'utilisateur courant.

    DEUXIÈME INSTALLATION (Utilisateur courant only)
    Par défaut la plateforme 4.1 est proposée, l'installation est limpide.
    Les 2 applis HelloWorld et Hello fonctionnent A partir de Eclipse dans la cible Android 4.1

    Je passe dans le SDK pour télécharger l'environnement 2.3.3 et là l'installation se passe correctement.
    Dans ADV je fais des cibles pour la 2.3.3
    HelloWord rudimentaire passe.
    Hello un peu plus "sophistiqué" plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Hello en 2.3.3
    [2012-08-04 07:42:41 - Emulator] 
    [2012-08-04 07:42:41 - Hello] New emulator found: emulator-5554
    [2012-08-04 07:42:41 - Hello] Waiting for HOME ('android.process.acore') to be launched...
    [2012-08-04 07:46:30 - Hello] ERROR: Application requires API version 16. Device API version is 10 (Android 2.3.3).
    [2012-08-04 07:46:30 - Hello] Launch canceled!
    Tout est normal, pardon pour le dérangement !

    Je pense qu'il n'était pas inutile de signaler cette différence de comportement suivant qu'on installe Android en Multi ou single...
    PS : j'ai fait la manip 2 fois, j'ai modifié les droits du répertoire Temp de Android, le téléchargement c'est planté un peu plus loin toujours sur un problème de droit d'accès... je n'ai pas noté le répertoire en question...

    Concernant le Xperia :
    Si on le connecte au PC sans avoir sélectionné l'option "Débogage USB" seul le driver de Microsoft lui est associé. Dans ce cas on ne peut faire que des transfert de fichier. Eclipse ne le voit pas comme device. Tout est normal.
    Si on passe en "Débogage USB" sans prendre soin de débrancher le câble, Eclipse ne le voit toujours pas, c'est toujours normal !
    Si on passe en "Débogage USB", à la connexion de Xperia sur PC, en plus du driver Microsoft, le driver de Sony lui est associé, Eclipse le voit comme device, et petite cerise sur le gâteau il est toujours possible de faire des transferts de fichier USB.

    Une question pour terminer :
    J'ai utilisé un petit logiciel gratuit trouvé sur Android_Market pour installer les appli après les avoir transférées dans un répertoire du portable. Il s'agit de Astro. Je crois avoir deviné que ce n'est pas une méthode convenable.
    C'est quoi la solution officielle ?
    Est-ce possible depuis Eclipse ?
    Pardon, je débute et suis un peu perdu dans cet environnement gigantesque !

    MERCI d'avance,
    MD

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Pour installer des apk, on passe plutôt directement par la ligne de commande via ADB (de mémoire "adb install monFichierApk.apk") quand le terminal mobile est connecté et est reconnu.

    Eclipse et les autres IDE supportant le développement Android passent par cet outil (adb) pour installer les APK.
    Pour Eclipse, il le fait automatiquement du moment que tu as bien fait la configuration "Projet Android". Je ne pourrai pas plus t'aider, ça fait des plombes que je n'utilise plus Eclipse.

    En mode "debug", les APK sont signés avec un certificat de DEBUG, donc il faut autoriser les "sources inconnues" pour que ça fonctionne (et le déboggage USB pour pouvoir dialoguer avec le terminal).

    Pour la production, je pense qu'on y viendra plus tard

    Au cas où, si tu ne le connais pas, ou ne la pas encore fait, je te conseils chaudement de lire le site web officiel pour le développement Android : http://developer.android.com
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    MERCI pour ta réponse Hizin,

    Pour http://developer.android.com/index.html je mets des plombes à décortiquer de l'anglais...

    Je venais justement ajouter un mot à mon post car j'ai trouvé http://dsilvera.developpez.com/tutor...oid/creer-apk/ et je ne vois pas l'utilité de déposer mes premiers Hello World sur Android Market

    Vu que j'ai installé en single user j'ai dû ajouter dans le Path utilisateur :
    C:\Users\Michel\AppData\Local\Android\android-sdk\platform-tools

    pour voir adb.exe, j'espère qu'il n'y a pas d'autres chemins à ajouter...?

    Effectivement sur le portable je passe en "Sources inconnues" et çà passe.

    J'ai un pb de vocabulaire quand on dit "appli signée" est-ce la manip qui consiste à créer des Keys quand on est sous Eclipse, ou bien est-ce autre chose ?
    J'ai fait des Keys pour mes proses, je suis passé en "Sources inconnues" et je n'ai eu aucun mal à télécharger le bout de code, celui qui fonctionne !!!

    Dernière question, tu dis ne plus utiliser Eclipse, c'est quoi alternative, moi je suis un vieux de la vieille inconditionnel de la ligne de commande et de Ultraedit... Je patauge dans Eclipse !

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Alors... je ne sais pas si j'arrive trop tard... mais il y a plusieurs choses...

    1. Installation de JDK / Eclipse
    La version importe peu, mais je conseille une version Indigo+ (Indigo ou Juno donc) pour eclipse, et un JDK1.6 au moins (le JDK1.7 marche très bien)... Perso... les versions x64
    Comme je connais un peu les zozos, ils sont tous deux installés dans un répertoire à part (pas dans program files donc): C:/Java
    Pourquoi pas dans program-files ? Parceque ce répertoire est protégé contre les accès en écriture si on n'est pas en "elevated rights", et en Java, c'est la galère...

    2. Installation Android SDK.
    La encore deux étapes... la première, en prenant l'installeur de chez google... Pareil, installation dans C:/Java
    Sous eclipse, installation du "plugin ADB" qui non seulement va fournir un accès direct à ADB (sans avoir à le rajouter dans un path quelconque) mais aussi aux perspectives DDMS (transferts de fichiers, visualisation de la mémoire des accès réseaux, etc...).
    Redémarrage d'eclipse

    3. Installation des Platform SDK
    Depuis eclipse, on click sur l'icone "SDK Manager", et on rajoute autant de SDK qu'on veut....

    Pour le développement, Eclipse est quand même vraiment appréciable: Gestion visuelle des UIs, outils de débug intégrés, outils de publication intégrés... accès au LogCat permanent, etc...
    Exemple: Pour démarrer son appli sur le téléphone (ou sur l'émulateur) il suffit dans eclipse de faire: "Run as Android".... et eclipse s'occupe de tout: création du .apk, upload du .apk, installation du .apk sur la machine cible, et même démarrage de l'appli (comme si on avait cliqué dans le launcher). Pas de téléphone branché ? il démarre l'émulateur. Téléphone branché ? il upload sur le téléphone. Les deux présents (téléphone branché + emulateur démarré), il demande sur quelle device.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo