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

API standards et tierces Android Discussion :

Connexion entre MySQL et Android


Sujet :

API standards et tierces Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut Connexion entre MySQL et Android
    Bonjour,

    Je suis en train de développer une application sous Android, j'ai une base de données créée sous MySQL et j'aimerais accéder à cette base à partir de l'application.
    J'ai téléchargé le My SQL Connector et je l'ai ajouté au BuildPath de mon projet une fois ajouté Eclipse m'indique que j'ai une faute dans mon projet (toutes mes classes sont correctes) avec cette exception :
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dx.util.ExceptionWithContext
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.util.ExceptionWithContext.withContext(ExceptionWithContext.java:46)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:340)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:131)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:85)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.command.dexer.Main.processClass(Main.java:369)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.command.dexer.Main.processFileBytes(Main.java:346)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.command.dexer.Main.access$400(Main.java:59)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:294)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:130)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.command.dexer.Main.processOne(Main.java:313)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.command.dexer.Main.processAllFiles(Main.java:233)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.command.dexer.Main.run(Main.java:185)
    [2011-04-14 12:20:04 - plplplplp] Dx at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [2011-04-14 12:20:04 - plplplplp] Dx at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    [2011-04-14 12:20:04 - plplplplp] Dx at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    [2011-04-14 12:20:04 - plplplplp] Dx at java.lang.reflect.Method.invoke(Unknown Source)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.ide.eclipse.adt.internal.build.DexWrapper.run(DexWrapper.java:179)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:585)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(PostCompilerBuilder.java:490)
    [2011-04-14 12:20:04 - plplplplp] Dx at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:717)
    [2011-04-14 12:20:04 - plplplplp] Dx at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    [2011-04-14 12:20:04 - plplplplp] Dx at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:191)
    [2011-04-14 12:20:04 - plplplplp] Dx at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:228)
    [2011-04-14 12:20:04 - plplplplp] Dx at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:281)
    [2011-04-14 12:20:04 - plplplplp] Dx at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    [2011-04-14 12:20:04 - plplplplp] Dx at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:284)
    [2011-04-14 12:20:04 - plplplplp] Dx at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:340)
    [2011-04-14 12:20:04 - plplplplp] Dx at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:363)
    [2011-04-14 12:20:04 - plplplplp] Dx at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
    [2011-04-14 12:20:04 - plplplplp] Dx at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
    [2011-04-14 12:20:04 - plplplplp] Dx at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
    [2011-04-14 12:20:04 - plplplplp] Dx Caused by: java.lang.NullPointerException
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.cf.code.Ropper$SubroutineInliner.involvedInSubroutine(Ropper.java:1518)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.cf.code.Ropper$SubroutineInliner.mapOrAllocateLabel(Ropper.java:1539)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.cf.code.Ropper$SubroutineInliner.copyBlock(Ropper.java:1457)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.cf.code.Ropper$SubroutineInliner.inlineSubroutineCalledFrom(Ropper.java:1412)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.cf.code.Ropper.inlineSubroutines(Ropper.java:1286)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.cf.code.Ropper.doit(Ropper.java:652)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.cf.code.Ropper.convert(Ropper.java:252)
    [2011-04-14 12:20:04 - plplplplp] Dx at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:252)
    [2011-04-14 12:20:04 - plplplplp] Dx ... 31 more
    ...while processing reuseAndReadPacket (Lcom/mysql/jdbc/Buffer;I)Lcom/mysql/jdbc/Buffer;
    ...while processing com/mysql/jdbc/MysqlIO.class
    Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?

    Merci d'avance pour votre aide.

  2. #2
    Membre chevronné
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Par défaut
    Hum je connaissais pas My SQL connector, je peux pas trop t'aider sur ce problème, mais si tu y arrive toujours pas, y'a une autre technique. J'ai une BDD MySQL et je fais appel à des fichier php qui eux attaquent la BDD.


    Edit: Y'a cette ligne dans ton message d'erreur

    [2011-04-14 12:20:04 - plplplplp] Dx Caused by: java.lang.NullPointerException

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    Euh, pour le connector je l'ai téléchargé d'ici http://www.mysql.com/downloads/connector/j/, ça permet de connecter à la BD depuis l'application, j'ai déjà fait une simple application qui marche avec les mêmes détails mais pas sous Android..

    voilà la méthode avec laquelle je me connecte à la base :
    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
        public java.sql.Connection CreateConnexion()
        {
            java.sql.Connection Connexion = null;
            try
            {
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                System.out.println("xDDDDDDDDD");
            } 
            catch (InstantiationException e)
            {
                e.printStackTrace();
            } 
            catch (IllegalAccessException e)
            {
                e.printStackTrace();
            } 
            catch (ClassNotFoundException e)
            {
                e.printStackTrace();
            }
            try 
            {
                Connexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/projet", "root", "");
                System.out.println("OHSHIT");
            } 
            catch (SQLException e)
            {
                System.out.println("Connexion");
            }    
            return Connexion;
        }

  4. #4
    Membre chevronné
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Par défaut
    Je suis pas sur que l'erreur doit provenir du code que tu montre sachant que tu met des System.out.println un peu de partout, rajoutes-en dans les autres catch mais je pense pas que ça vient de là.

    Ton application pour laquelle tu as déjà utiliser MySQL connector, c'était pour quel support qu'elle était destinée?

    Parce que personnellement j'avais fait pas mal de recherche pour me connecter à un BDD MySQL via mon appli android et tous le monde disait qu'il fallait passé par un fichier php...De plus il se dit que c'est pas trop conseillé qu'une appli se connecte elle même à une BDD.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 21
    Par défaut
    Connexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/projet", "root", "");
    Tu veux dire que ton serveur MySQL est hébergé sur le téléphone ? ça le parait bizarre

    A mon avis il faut que tu :
    1. corrige ta chaine de connexion pour y mettre l'ip du serveur
    2. vérifie que le serveur écoute sur son ip publique


    Par défaut (et chez presque tous les hébergeurs) MySQL n'écoute que les demandes venant de "localhost", donc des applications qui tournent en local.
    D'ou la necessité de passer par des fichiers php, qui eux sont exécuté sur le serveur même, pas sur le téléphone.

  6. #6
    Membre averti
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    @malgache : c'est une application téléphonique qui gère le trafic routier, donc j'ai créé une BD ou je dois stocker les utilisateurs via MySQL et je dois y accéder.. Le truc du fichier php ça a marché pour toi ??

    @Iridian : si j'ai bien compris le localhost là se réfère à l'émulateur d'androïde et pas ma machine.. alors c'est quoi l'adresse qu'il faut mettre pour se référer à la machine ?

Discussions similaires

  1. connexion entre mysql et vb.net
    Par tun_code dans le forum Administration
    Réponses: 1
    Dernier message: 14/11/2012, 11h42
  2. Connexion entre mysql et Android
    Par PIEPLU dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 25/03/2012, 01h14
  3. Problème connexion entre MySQL et Android
    Par omarouen dans le forum Android
    Réponses: 4
    Dernier message: 23/02/2012, 16h34
  4. Connexion entre MySQL et Android
    Par omarouen dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 17/02/2012, 09h50
  5. la connexion entre MYSQL et MYECLIPSE
    Par brahda dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 03/04/2011, 17h34

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