Connexion Android avec base de donne

Résolu
SK -  
 SK -
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();
          }
        
       

             }
             });
  
 }
}

8 réponses

  1. Nhhi Messages postés 384 Statut Membre 300
     
    C'est quoi l'erreur que te donne le logcat ?
    0
  2. SK
     
    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
    1. Nhhi Messages postés 384 Statut Membre 300
       
      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
  3. SK
     
    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
    1. Nhhi Messages postés 384 Statut Membre 300
       
      Tu as bien déclaré la permission internet dans ton manifest ?
      0
  4. SK
     
    vous parlez à androidManifest ?
    oui j'ajoute <activity android:name="classe"></activity>
    0
    1. Nhhi Messages postés 384 Statut Membre 300
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. SK
     
    je ne connais pas , mais je déjà fait des autre applications connecter a base des donnes et se marche bien
    0
    1. Nhhi Messages postés 384 Statut Membre 300
       
      Ba si ça marche bien t'as pas besoin d'aide alors :)
      0
  7. SK
     
    jusqu'à ce moment la , je ne connais pas l'erreur
    mais dans tous le cas merci pour vous
    0
  8. BunoCS Messages postés 436 Date d'inscription   Statut Modérateur Dernière intervention   3 931
     
    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
  9. SK
     
    bonjour BunoCS
    merci infiniment
    le code marche bien
    0