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 du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 60
    Points
    60
    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 : 34
    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
    Points : 2 808
    Points
    2 808
    Par défaut
    J'ai aussi écrit un tutoriel là-dessus, si ça peut t'aider

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 60
    Points
    60
    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
    Inscrit

    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
    Points : 892
    Points
    892
    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 habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Points : 192
    Points
    192
    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 : 34
    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
    Points : 2 808
    Points
    2 808
    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