Bonjour. Je fais une application java qui permet d'acceder à une base de donnees contenant 4 écoles (base avec une table de 3 colonnes: id, nom et categorie)
Mon programme me dit NullPointerException mais je ne vois pas d'ou vien cette erreur.
Voici mon mainactivity qui est le programme principal:
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package com.example.basedonnees;
 
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
 
import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import android.app.ListActivity;
import android.net.ParseException;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.Toast;
 
 
public class MainActivity extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);
        String result = null;
        String probleme= null;
     InputStream is = null;
     JSONObject json_data=null;
     ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
     ArrayList<String> donnees = new ArrayList<String>();
 
     try{
 
 
     //commandes httpClient
 
        TheTask task= new TheTask();
 
        task.execute("http://10.0.2.2/ecoles/projet.php");
 
        is=task.Avoiris();
        Log.i("is=","" +is);
 
        probleme=task.entityStr;
        Log.i("entityStr=",""+probleme);
 
        //HttpClient httpclient = new DefaultHttpClient();
        /*HttpPost httppost = new HttpPost("http://127.0.0.1/ecoles/projet.php");
        Log.i("connect base","coucou");
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        Log.i("connect base","coucou1");
        HttpResponse response = httpclient.execute(httppost);
        Log.i("connect base","coucou2");
        HttpEntity entity = response.getEntity();
        is = entity.getContent();*/
 
 
     }
     catch(Exception e){
    	 	Log.i("taghttppost",""+e.toString());
 
 
            Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
       }
 
 
     //conversion de la réponse en chaine de caractère
        try
        {
        	Log.i("connect base","coucou");
        	Log.i("is=",""+is);
        	Log.i("ok=","ok");
         BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));
         Log.i("connect base","coucou1");
 
         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("tagconvertstr",""+e.toString());
        }
        //recuperation des donnees json
        try{
          JSONArray jArray = new JSONArray(result);
 
             for(int i=0;i<jArray.length();i++)
             {
 
                   json_data = jArray.getJSONObject(i);
                   donnees.add(json_data.getString("nom"));
                   //r.add(json_data.getString("categorie"));
 
               }
                setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, donnees));
            }
            catch(JSONException e){
             Log.e("tagjsonexp",""+e.toString());
            } catch (ParseException e) {
             Log.e("tagjsonpars",""+e.toString());
       }
 
    }
}
Et theTask qui me permet de me connecter au http en uitilisant asynctask:
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package com.example.basedonnees;
 
import java.io.InputStream;
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.util.EntityUtils;
 
import android.os.AsyncTask;
import android.util.Log;
import android.widget.TextView;
 
public class TheTask extends AsyncTask<String,String,String>
    {
	private TextView textView;
	public InputStream is;
	public String entityStr;
 
 
protected void onPostExecute(String result) {
    // TODO Auto-generated method stub
    super.onPostExecute(result);
    // update textview here
    textView.setText("Server message is "+result);
}
 
@Override
protected void onPreExecute() {
    // TODO Auto-generated method stub
    super.onPreExecute();
}
 
public InputStream Avoiris() {
    return is;
}
@Override
protected String doInBackground(String... params) {
	ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
     try
        {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost method = new HttpPost(params[0]);
            Log.i("method=",""+method);
            method.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(method);
            HttpEntity entity = response.getEntity();
 
            if(entity != null){
            	Log.i("entity=","" +entity);
            	is = entity.getContent();
            	Log.i("is=",""+is);
            	Log.i("message1=","coucou");
            	entityStr=EntityUtils.toString(entity);
                Log.i("message2=","coucou");
                Log.i("entityString=","" +entityStr);
                return entityStr;
            }
            else{
 
                entityStr="No string.";
                return entityStr;
            }
         }
         catch(Exception e){
        	 Log.i("entity=","cool5");
             entityStr="Network problem";
             return entityStr;
         }
 
 
}
}
et en surplus, mon android manifest:
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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.basedonnees"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
	<uses-permission android:name="android.permission.INTERNET" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.basedonnees.MainActivity"
            android:label="@string/app_name" >
 
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
 
    </application>
 
 
</manifest>
Pouvez-vous m'aider svp?