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 MySQL à une application Android


Sujet :

API standards et tierces Android

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Par défaut Connexion MySQL à une application Android
    Bonjour,

    Je suis en plein apprentissage dans la conception d'applications Android et après avoir suivi quelques tutoriels, je cherche à récuperer des données dans mon application, via une base de données MySQL. Pour cela, j'ai suivi le tutoriel : http://blog.erlem.fr/fr/applications...de-de-php.html

    J'ai un peu modifié mon code pour avoir une classe de connexion et pour ne pas que ce soit dans le main, et je me retrouve avec ces erreurs :
    11-23 11:03:35.039: E/log_tag(591): Error in http connection android.os.NetworkOnMainThreadException
    11-23 11:03:35.039: E/log_tag(591): Error converting result java.lang.NullPointerException
    11-23 11:03:35.039: E/log_tag(591): Error parsing data org.json.JSONException: End of input at character 0 of
    11-23 11:03:35.200: D/gralloc_goldfish(591): Emulator without GPU emulation detected.
    Dans mon main j'ai l'instanciation et l'appel de la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            MaBDD connect = new MaBDD();
            connect.traitement();
        }
    Dans ma Classe MaBDD j'ai un constructeur vide et la fonction :
    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
    57
    58
    59
    public void MaBDD()
        {}
     
        public String traitement()
        {
            String returnString = strURL;
            InputStream is = null;
            String result = "";
            // Envoyer la requête au script PHP.
            // Script PHP : $sql=mysql_query("select * from tblVille where Nom_ville like '".$_REQUEST['ville']."%'");
            // $_REQUEST['ville'] sera remplacé par L dans notre exemple.
            // Ce qui veut dire que la requête enverra les villes commençant par la lettre L
            ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("ville","L"));
     
            // Envoie de la commande http
            try{
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(strURL);
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();
     
            }catch(Exception e){
                Log.e("log_tag", "Error in http connection " + e.toString());
            }
     
            // Convertion de la requête en string
            try{
                BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }
                is.close();
                result=sb.toString();
            }catch(Exception e){
                Log.e("log_tag", "Error converting result " + e.toString());
            }
            // Parse les données JSON
            try{
                JSONArray jArray = new JSONArray(result);
                for(int i=0;i<jArray.length();i++){
                    JSONObject json_data = jArray.getJSONObject(i);
                    // Affichage ID_ville et Nom_ville dans le LogCat
                    Log.i("log_tag","ID_ville: "+json_data.getInt("ID_ville")+
                            ", Nom_ville: "+json_data.getString("Nom_ville")
                    );
                    // Résultats de la requête
                    returnString += "\n\t" + jArray.getJSONObject(i); 
                }
            }catch(JSONException e){
                Log.e("log_tag", "Error parsing data " + e.toString());
            }
     
            return returnString;
        }
    Dans l'idée la fonction traitement renvoie un String contenant les résultats de la BDD pour pouvoir les afficher dans le main.

    Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    J'ai aussi écrit un tutoriel là-dessus, si ça peut t'aider

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Par défaut
    Merci, j'ai suivi le tuto que tu viens de me proposer, mais j'ai un problème dans la classe Login.java avec les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UserEditText = (EditText) findViewById(R.id.username);
     
    		PassEditText = (EditText) findViewById(R.id.password);
    		Button button = (Button) findViewById(R.id.okbutton);
    Eclipse me souligne les id en rouge, alors que j'ai bien modifié le main.xml, et j'ai bien importer la classe R de mon package, est ce qu'il y aurait autre chose à faire ?

    Merci beaucoup.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    il faut cleaner le projet
    Si cela ne marche pas regarde bien si tu as nommé tout les elements de ta ressources de la bonne maniere

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Par défaut
    Tu utilises quelle framework ?

  6. #6
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Le fichier R.java est généré automatiquement en fonction des éléments que tu places dans tes fichiers xml.

    Donc si tu as bien nommé tes éléments (@+id/nom_de_ton_element), il ne devrait pas y avoir de problème.

    De plus, vérifie bien que ton fichier main.xml est bien placé dans l'arborescence (res > layout > main.xml).

    Si tout est ok fait un clean de ton projet (projet > clean).

    Ca devrait être bon

Discussions similaires

  1. Connexion d'une application Android à une BDD externe (mais pas avec PHP)
    Par SaladinDev dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 29/07/2014, 12h56
  2. Connexion d'une base de données MySQL avec une application Android
    Par eloumghari.imane dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 06/01/2014, 09h53
  3. Connexion à tavers une application Android à Oracle 10g
    Par gebtun dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 26/05/2013, 03h30
  4. Ajouter des données dans un serveur de données MySQL via une application Android
    Par af.zakaria dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 30/07/2012, 16h25
  5. Probléme de connexion d'une application android vers une BD mysql
    Par hajer_baccouch dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 13/05/2012, 00h52

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