Connexion Android avec base de donne

Résolu/Fermé
SK - Modifié par jordane45 le 27/02/2016 à 13:28
 SK - 29 févr. 2016 à 11:21
Bonjour
je suis débutante en android et je trouve un problème au niveau "run" toujours affiche un message "sorry"
vous pouvez m'aider
et merci
package com.example.espaceenseignant;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
 private static final String strURL = "http://10.0.2.2/webservice/connecter.php";
 // private String result ;
  
  private JSONArray  jArray;
  private JSONObject  json_data;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
   Button connexion = (Button) findViewById(R.id.button1);
         final EditText iden = (EditText) findViewById(R.id.editText1);
         final EditText Nom = (EditText) findViewById(R.id.editText2);
         connexion.setOnClickListener(new View.OnClickListener() {
          
             public void onClick(View v) {
              String result =null;
              InputStream is = null;
              StringBuilder sb = new StringBuilder();
              ArrayList<NameValuePair> nameValuePairs=new ArrayList<NameValuePair> ();
              nameValuePairs.add(new BasicNameValuePair("identifiant",Nom.getText().toString()));

              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());
        } 
        try{
         BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
       
         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 in http connection " + e.toString());
           }
        String essai=result.substring(0, 4) ;
        try {
         if (result.matches("<br >")){
           essai=result.substring(0, 2) ; 
         }
         JSONArray jArray = new JSONArray(result);
         int b=jArray.length();
         
          
                 
            JSONObject json_data = jArray.getJSONObject(0);
        
         
            String nom1 = json_data.getString("cin").toString();
            //String login = json_data.getString("login").toString();
            if (nom1.equals(iden.getText().toString()) ){
             
             Intent principale =new Intent(MainActivity.this,classe.class);
             startActivity(principale);
         
            }
            else {
             
             Toast.makeText(MainActivity.this, "nom introuvable ", Toast.LENGTH_LONG).show();
            }
         
         
          }catch(JSONException e){
         //  Log.e("log_tag", "Error parsing data " + e.toString());
           Toast.makeText(MainActivity.this, "Verifier L'identifiant ", Toast.LENGTH_LONG).show();
          }
        
       

             }
             });
  
 }
}
A voir également:

8 réponses

Nhhi Messages postés 332 Date d'inscription lundi 28 avril 2014 Statut Membre Dernière intervention 6 mars 2016 299
27 févr. 2016 à 21:41
C'est quoi l'erreur que te donne le logcat ?
0
Au niveau de programme il n’y a pas d'erreur
mai seulement en run , il affiche après cliquer sur le boutant connecter
" the application espaceenseignant(processcom.example.espaceenseignant) has stopped unexpectedly.please try again.
0
Nhhi Messages postés 332 Date d'inscription lundi 28 avril 2014 Statut Membre Dernière intervention 6 mars 2016 299
27 févr. 2016 à 23:39
Oui et bien dans ce cas tu doit avoir une trace dans le logcat. Le logcat, je ne te parle pas de ton programme.
0
Ce tout qui s'affiche à logCat


02-28 07:20:20.360: W/KeyCharacterMap(274): No keyboard for id 0
02-28 07:20:20.360: W/KeyCharacterMap(274): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
02-28 07:20:34.800: E/log_tag(274): Error in http connection java.net.SocketException: Permission denied
02-28 07:20:34.800: E/log_tag(274): Error in http connection java.lang.NullPointerException
02-28 07:20:34.800: D/AndroidRuntime(274): Shutting down VM
02-28 07:20:34.800: W/dalvikvm(274): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
02-28 07:20:34.840: E/AndroidRuntime(274): FATAL EXCEPTION: main
02-28 07:20:34.840: E/AndroidRuntime(274): java.lang.NullPointerException
02-28 07:20:34.840: E/AndroidRuntime(274): at com.example.espaceenseignant.MainActivity$1.onClick(MainActivity.java:78)
02-28 07:20:34.840: E/AndroidRuntime(274): at android.view.View.performClick(View.java:2408)
02-28 07:20:34.840: E/AndroidRuntime(274): at android.view.View$PerformClick.run(View.java:8816)
02-28 07:20:34.840: E/AndroidRuntime(274): at android.os.Handler.handleCallback(Handler.java:587)
02-28 07:20:34.840: E/AndroidRuntime(274): at android.os.Handler.dispatchMessage(Handler.java:92)
02-28 07:20:34.840: E/AndroidRuntime(274): at android.os.Looper.loop(Looper.java:123)
02-28 07:20:34.840: E/AndroidRuntime(274): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-28 07:20:34.840: E/AndroidRuntime(274): at java.lang.reflect.Method.invokeNative(Native Method)
02-28 07:20:34.840: E/AndroidRuntime(274): at java.lang.reflect.Method.invoke(Method.java:521)
02-28 07:20:34.840: E/AndroidRuntime(274): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-28 07:20:34.840: E/AndroidRuntime(274): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-28 07:20:34.840: E/AndroidRuntime(274): at dalvik.system.NativeStart.main(Native Method)
0
Nhhi Messages postés 332 Date d'inscription lundi 28 avril 2014 Statut Membre Dernière intervention 6 mars 2016 299
Modifié par Nhhi le 28/02/2016 à 15:00
Tu as bien déclaré la permission internet dans ton manifest ?
0
vous parlez à androidManifest ?
oui j'ajoute <activity android:name="classe"></activity>
0
Nhhi Messages postés 332 Date d'inscription lundi 28 avril 2014 Statut Membre Dernière intervention 6 mars 2016 299
28 févr. 2016 à 15:41
Je ne te parle pas de l'activité, je te parle de la permission qui permet d'autoriser ton appli à accéder à internet.
Parce que d'après cette ligne ça pourrait être la raison de l'erreur.
02-28 07:20:34.800: E/log_tag(274): Error in http connection java.net.SocketException: Permission denied
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je ne connais pas , mais je déjà fait des autre applications connecter a base des donnes et se marche bien
0
Nhhi Messages postés 332 Date d'inscription lundi 28 avril 2014 Statut Membre Dernière intervention 6 mars 2016 299
28 févr. 2016 à 16:09
Ba si ça marche bien t'as pas besoin d'aide alors :)
0
jusqu'à ce moment la , je ne connais pas l'erreur
mais dans tous le cas merci pour vous
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 3 895
29 févr. 2016 à 09:05
Hello,

Comme le dit Nhhi, le problème est là:
02-28 07:20:34.800: E/log_tag(274): Error in http connection java.net.SocketException: Permission denied 

Comme l'a également dit Nhhi, il faut donner la permission à ton applicaition d'accéder à Internet. Pour ceci, tu as une ligne à rajouter dans ton Manifest:
<uses-permission android:name="android.permission.INTERNET"/>
0
bonjour BunoCS
merci infiniment
le code marche bien
0