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

Android Discussion :

l'exception: pointeur nulle


Sujet :

Android

  1. #1
    Membre du Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Février 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Etudiante
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2013
    Messages : 95
    Points : 68
    Points
    68
    Par défaut l'exception: pointeur nulle
    bonjour ,
    Je suis débutante dans le développement android et je souhaite votre aide.Quand je lance l'application, le compilateur ne donne aucune erreur mais le logcat affiche"java.lang.NullPointerException".


    voici le logcat:


    03-15 13:25:11.309: D/dalvikvm(952): GC_CONCURRENT freed 161K, 11% free 2635K/2944K, paused 7ms+6ms, total 272ms 03-15 13:25:11.320: W/CursorWrapperInner(952): Cursor finalized without prior close() 03-15 13:25:11.330: W/CursorWrapperInner(952): Cursor finalized without prior close() 03-15 13:25:12.089: I/Maps.MyLocationOverlay(952): Request updates from gps 03-15 13:25:12.099: D/AndroidRuntime(952): Shutting down VM 03-15 13:25:12.099: W/dalvikvm(952): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 03-15 13:25:12.149: E/AndroidRuntime(952): FATAL EXCEPTION: main 03-15 13:25:12.149: E/AndroidRuntime(952): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.recherche_restaurant/com.example.recherche_restaurant.MainActivity}: java.lang.NullPointerException 03-15 13:25:12.149: E/AndroidRuntime(952): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 03-15 13:25:12.149: E/AndroidRuntime(952): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 03-15 13:25:12.149: E/AndroidRuntime(952): at android.app.ActivityThread.access$600(ActivityThread.java:141) 03-15 13:25:12.149: E/AndroidRuntime(952): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 03-15 13:25:12.149: E/AndroidRuntime(952): at android.os.Handler.dispatchMessage(Handler.java:99) 03-15 13:25:12.149: E/AndroidRuntime(952): at android.os.Looper.loop(Looper.java:137) 03-15 13:25:12.149: E/AndroidRuntime(952): at android.app.ActivityThread.main(ActivityThread.java:5041) 03-15 13:25:12.149: E/AndroidRuntime(952): at java.lang.reflect.Method.invokeNative(Native Method) 03-15 13:25:12.149: E/AndroidRuntime(952): at java.lang.reflect.Method.invoke(Method.java:511) 03-15 13:25:12.149: E/AndroidRuntime(952): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 03-15 13:25:12.149: E/AndroidRuntime(952): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 03-15 13:25:12.149: E/AndroidRuntime(952): at dalvik.system.NativeStart.main(Native Method) 03-15 13:25:12.149: E/AndroidRuntime(952): Caused by: java.lang.NullPointerException 03-15 13:25:12.149: E/AndroidRuntime(952): at com.example.recherche_restaurant.MainActivity.onCreate(MainActivity.java:98) 03-15 13:25:12.149: E/AndroidRuntime(952): at android.app.Activity.performCreate(Activity.java:5104) 03-15 13:25:12.149: E/AndroidRuntime(952): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 03-15 13:25:12.149: E/AndroidRuntime(952): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 03-15 13:25:12.149: E/AndroidRuntime(952): ... 11 more 03-15 13:30:12.389: I/Process(952): Sending signal. PID: 952 SIG: 9

    les classes java :

    MainActivity.java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    package com.example.recherche_restaurant; import java.io.InputStream; import java.util.List; import org.apache.http.HttpEntity; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.example.recherche_restaurant.JsonParser; import com.example.recherche_restaurant.ListItimizedOverlay; import com.example.recherche_restaurant.R; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView; import com.google.android.maps.MyLocationOverlay; import com.google.android.maps.Overlay; import com.google.android.maps.OverlayItem; import android.content.Context; import android.graphics.drawable.Drawable; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.AsyncTask; import android.os.Bundle; import android.view.KeyEvent; import android.widget.Toast; public class MainActivity extends MapActivity implements LocationListener { static String lg =""; static String lt =""; private static String url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location="+lg+","+lt+"&radius=500&types=food&name=harbour&sensor=true&key=AIzaSyDxms7wMJorpD9LZVRL9OiozgV1D9wJKxo"; private static final String TAG_results = "results";
     private static final String TAG_geometry = "geometry"; 
    private static final String TAG_location = "location";
     private static final String TAG_lat = "lat"; 
    private static final String TAG_lng = "lng"; JSONArray contacts = null; private MapView mapView = null; 
    private LocationManager lm = null; 
    private static double lat = 0;
     private static double lng = 0; 
    private MapController mc = null;
     private MyLocationOverlay myLocation = null;
     HttpEntity httpEntity; static InputStream is = null;
     static JSONObject jObj = null; static String json = ""; 
    @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mapView = (MapView) this.findViewById(R.id.mapView); mapView.setBuiltInZoomControls(true); lm = (LocationManager) this.getSystemService(LOCATION_SERVICE); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0, this); lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 0, this); mc = mapView.getController(); mc.setZoom(19); myLocation = new MyLocationOverlay(getApplicationContext(), mapView); myLocation.runOnFirstFix(new Runnable() { public void run() { mc.animateTo(myLocation.getMyLocation()); mc.setZoom(17); } }); mapView.getOverlays().add(myLocation); myLocation.enableMyLocation(); lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Location l = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); double longitude = l.getLongitude(); double latitude = l.getLatitude(); lg=Double.toString(longitude); lt=Double.toString(latitude); getData(); } private void getData() { Drawable drawable = this.getResources().getDrawable(R.drawable.ic_launcher); final ListItimizedOverlay itemizedoverlay = new ListItimizedOverlay(drawable,this); new AsyncTask<Void, Void, JSONObject>(){ @Override protected JSONObject doInBackground(Void... params) { // instancier la classe JsonParser JsonParser jParser = new JsonParser (); // récupérer le JSONObject à partir de l’url du fichier employes.json JSONObject json = jParser.getJSONFromUrl(url); return json; }; protected void onPostExecute(JSONObject json) { try { // récupérer la liste de tous les employés JSONArray results = json.getJSONArray(TAG_results); // parcourir toute la liste des employés for(int i = 0; i < results.length(); i++){ // récupérer un employé de type JSONObject JSONObject emp = results.getJSONObject(i); // récupérer le JSONObject phone qui contient deux items JSONObject geometry = emp.getJSONObject(TAG_geometry); JSONObject location = geometry.getJSONObject(TAG_location); String latitude = location.getString(TAG_lat); String longitude= location.getString(TAG_lng); double b = Double.parseDouble(latitude); double c = Double.parseDouble(longitude); GeoPoint geoPoint = new GeoPoint((int) (c* 1E6) , (int)(b* 1E6)); OverlayItem overlayitem = new OverlayItem(geoPoint, "Hello from", "Tahiti"); itemizedoverlay.addOverlayItem(overlayitem); List<Overlay> mapOverlays = mapView.getOverlays(); mapOverlays.add(itemizedoverlay); } } catch(JSONException e) { e.printStackTrace(); } }; }.execute(); } @Override protected void onResume() { super.onResume(); myLocation.enableMyLocation(); myLocation.enableCompass(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_S) { mapView.setSatellite(!mapView.isSatellite()); return true; } return super.onKeyDown(keyCode, event); } @Override public void onLocationChanged(Location location) { lat = location.getLatitude(); lng = location.getLongitude(); Toast.makeText( getBaseContext(), "Location change to : Latitude = " + lat + " Longitude = " + lng, Toast.LENGTH_SHORT).show(); GeoPoint p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6)); mc.animateTo(p); mc.setCenter(p); } @Override public void onProviderDisabled(String arg0) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String arg0) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String arg0, int arg1, Bundle arg2) { // TODO Auto-generated method stub } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } }

    JsonParser.java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    package com.example.recherche_restaurant; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONException; import org.json.JSONObject; import android.util.Log; public class JsonParser { static InputStream is = null; static JSONObject jObj = null; static String json = ""; // Constructeur de notre classe public JsonParser() { } public JSONObject getJSONFromUrl(String url) { // début de la requête http try { // faire appel à defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 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(); json = sb.toString(); } catch (Exception e) { Log.e("Buffer Error", "Error converting result " + e.toString()); } // convertir le résultat qui est sous format d'un String en un JSONObject try { jObj = new JSONObject(json); } catch (JSONException e) { Log.e("JSON Parser", "Error parsing data " + e.toString()); } // retourner un JSONObject return jObj; } }
    ListItimizedOverlay.java :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    package com.example.recherche_restaurant; import java.util.ArrayList; import android.app.AlertDialog; import android.content.Context; import android.graphics.drawable.Drawable; import com.google.android.maps.ItemizedOverlay; import com.google.android.maps.OverlayItem; public class ListItimizedOverlay extends ItemizedOverlay<OverlayItem> { private Context context; private ArrayList<OverlayItem> arrayListOverlayItem = new ArrayList<OverlayItem>(); public ListItimizedOverlay(Drawable defaultMarker) { super(boundCenterBottom(defaultMarker)); // TODO Auto-generated constructor stub } public ListItimizedOverlay(Drawable defaultMarker, Context pContext) { super(boundCenterBottom(defaultMarker)); this.context = pContext; } @Override protected OverlayItem createItem(int i) { // TODO Auto-generated method stub return arrayListOverlayItem.get(i); } @Override public int size() { // TODO Auto-generated method stub return arrayListOverlayItem.size(); } @Override protected boolean onTap(int index) { OverlayItem item = arrayListOverlayItem.get(index); AlertDialog.Builder dialog = new AlertDialog.Builder(context); dialog.setTitle(item.getTitle()); dialog.setMessage(item.getSnippet()); dialog.show(); return true; } public void addOverlayItem(OverlayItem overlay) { arrayListOverlayItem.add(overlay); populate(); } }

    le manifest :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.recherche_restaurant" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <uses-library android:name="com.google.android.maps" /> <activity android:name="com.example.recherche_restaurant.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>

    Avez vous des idées ? Merci d'avance.

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java / C++
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java / C++

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Points : 228
    Points
    228
    Par défaut
    Bonjour Arwa89,

    Heu.... Pourrais tu utiliser les balises [CODE] stp? Et faire attention aux retours à la ligne? Parce que là, non personne ne lira ton code.

    D'autant plus que vue l'erreur du LogCat, le NullPointerException, je pari que tu utilise un objet sans l'avoir instancié. Donc l'erreur est surement dans le code, mais ce que tu a posté est illisible, donc on ne peut pas t'aider plus.
    Pensez à lire les règles du forum avant de poster.

    Si un poste ou un commentaire vous a été utile, merci de mettre un petit !
    Problème résolu? alors pensez à cliquer sur .
    Si vous avez trouvé la solution tout seul, merci de la poster, ça pourrait aider les suivants!

    Bonjour, s'il vous plaît et merci => ses mots ne coûtent rien, mais ils font toujours plaisirs!

  3. #3
    Membre du Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Février 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Etudiante
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2013
    Messages : 95
    Points : 68
    Points
    68
    Par défaut
    Bonsoir Minicalion,
    je suis désolé pour le code illisible . et je vous remercie pour votre aide. Voilà je vais le corriger et je souhaites que vous m'aider et merci d'avance.
    MainActivity.java
    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
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    package com.example.recherche_restaurant;
     
    import java.io.InputStream;
     
     
     
    import java.util.List;
     
    import org.apache.http.HttpEntity;
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
     
    import com.example.recherche_restaurant.JsonParser;
    import com.example.recherche_restaurant.ListItimizedOverlay;
    import com.example.recherche_restaurant.R;
    import com.google.android.maps.GeoPoint;
    import com.google.android.maps.MapActivity;
    import com.google.android.maps.MapController;
    import com.google.android.maps.MapView;
    import com.google.android.maps.MyLocationOverlay;
    import com.google.android.maps.Overlay;
    import com.google.android.maps.OverlayItem;
     
    import android.content.Context;
    import android.graphics.drawable.Drawable;
    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    import android.os.AsyncTask;
    import android.os.Bundle;
     
    import android.view.KeyEvent;
     
    import android.widget.Toast;
     
    public class MainActivity extends  MapActivity  implements
    LocationListener {
     
     
    	static double longitude;
    	static double latitude;
    	private static double lat = 0;
        private static double lng = 0;
    	private static String url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location="+longitude+","+latitude+"&radius=500&types=food&name=harbour&sensor=true&key=AIzaSyDxms7wMJorpD9LZVRL9OiozgV1D9wJKxo";
    	private static final String TAG_results = "results";
    	private static final String TAG_geometry = "geometry";
    	private static final String TAG_location = "location";
    	private static final String TAG_lat = "lat";
    	private static final String TAG_lng = "lng";
    	JSONArray contacts = null;
     
        private MapView mapView = null;
        private LocationManager lm = null;
     
     
        private MapController mc = null;
        private MyLocationOverlay myLocation = null;
     
     
        HttpEntity httpEntity;
        static InputStream is = null;
     
    	static JSONObject jObj = null;
     
    	static String json = "";
     
     
     
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
    	setContentView(R.layout.activity_main);
     
     
    	mapView = (MapView) this.findViewById(R.id.mapView);
    	mapView.setBuiltInZoomControls(true);
    	lm = (LocationManager) this.getSystemService(LOCATION_SERVICE);
    	lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0, this);
    	lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 0,
    		this);
     
     
    	mc = mapView.getController();
    	mc.setZoom(19);
     
    	myLocation = new MyLocationOverlay(getApplicationContext(), mapView);
    	myLocation.runOnFirstFix(new Runnable() {
    	    public void run() {
    		mc.animateTo(myLocation.getMyLocation());
    		mc.setZoom(17);
    	    }
    	});
     
    	mapView.getOverlays().add(myLocation);
    	myLocation.enableMyLocation();
    	 lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    	 Location l = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    	 longitude = l.getLongitude();
    	 latitude = l.getLatitude(); 
    	 getData();
        }
        private void getData() {
    		Drawable drawable = this.getResources().getDrawable(R.drawable.ic_launcher);
    		final ListItimizedOverlay itemizedoverlay = new ListItimizedOverlay(drawable,this);
    	new AsyncTask<Void, Void, JSONObject>(){
    		@Override
    	protected JSONObject doInBackground(Void... params) {
    			// instancier la classe JsonParser
    			JsonParser jParser = new JsonParser ();
    			// récupérer le JSONObject à partir de l’url du fichier employes.json
    			JSONObject json = jParser.getJSONFromUrl(url);
     
    			return json;
    		};
     
     
    	protected void onPostExecute(JSONObject json) {
     
    		try {
     
    			// récupérer la liste de tous les employés
    			JSONArray results = json.getJSONArray(TAG_results);
     
    			// parcourir toute la liste des employés
    			for(int i = 0; i < results.length(); i++){
     
    			// récupérer un employé de type JSONObject
    			JSONObject emp = results.getJSONObject(i);
     
    			// récupérer le JSONObject phone qui contient deux items
    			JSONObject geometry = emp.getJSONObject(TAG_geometry);
    			JSONObject location = geometry.getJSONObject(TAG_location);
    			String latitude = location.getString(TAG_lat);
    			String longitude= location.getString(TAG_lng);
    			double b = Double.parseDouble(latitude);
    			double c = Double.parseDouble(longitude);
     
     
    		GeoPoint geoPoint = new GeoPoint((int) (c* 1E6) , (int)(b* 1E6));
    		OverlayItem overlayitem = new OverlayItem(geoPoint, "Hello from", "Tahiti");
    		itemizedoverlay.addOverlayItem(overlayitem);
     
     
    		List<Overlay> mapOverlays = mapView.getOverlays();
    		mapOverlays.add(itemizedoverlay);
     
    		}
    		}
    		catch(JSONException e)
    		{
    			e.printStackTrace();
    		}
    	};
     
    }.execute();
        }
     
     
        @Override
        protected void onResume() {
    	super.onResume();
    	myLocation.enableMyLocation();
    	myLocation.enableCompass();
        }
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
    	if (keyCode == KeyEvent.KEYCODE_S) {
    	    mapView.setSatellite(!mapView.isSatellite());
    	    return true;
    	}
    	return super.onKeyDown(keyCode, event);
        }
     
     
    	@Override
    	public void onLocationChanged(Location location) {
    		lat = location.getLatitude();
    		lng = location.getLongitude();
    		Toast.makeText(
    			getBaseContext(),
    			"Location change to : Latitude = " + lat + " Longitude = "
    				+ lng, Toast.LENGTH_SHORT).show();
    		GeoPoint p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
    		mc.animateTo(p);
    		mc.setCenter(p);
     
    	}
     
     
     
     
     
    	@Override
    	public void onProviderDisabled(String arg0) {
    		// TODO Auto-generated method stub
     
    	}
     
     
    	@Override
    	public void onProviderEnabled(String arg0) {
    		// TODO Auto-generated method stub
     
    	}
     
     
    	@Override
    	public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
    		// TODO Auto-generated method stub
     
    	}
     
     
    	@Override
    	protected boolean isRouteDisplayed() {
    		// TODO Auto-generated method stub
    		return false;
    	}
     
    }
    JsonParser.java
    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
    package com.example.recherche_restaurant;
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
     
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.json.JSONException;
    import org.json.JSONObject;
     
    import android.util.Log;
     
    public class JsonParser {
    	static InputStream is = null;
     
    	static JSONObject jObj = null;
     
    	static String json = "";
     
    	// Constructeur de notre classe
    	public JsonParser() {
     
    	}
     
    	public JSONObject getJSONFromUrl(String url) {
     
    	// début de la requête http
    	try {
     
    	// faire appel à defaultHttpClient
    	DefaultHttpClient httpClient = new DefaultHttpClient();
     
    	HttpPost httpPost = new HttpPost(url);
     
    	HttpResponse httpResponse = httpClient.execute(httpPost);
     
    	HttpEntity httpEntity = httpResponse.getEntity();
     
    	is = httpEntity.getContent();
     
    	} catch (UnsupportedEncodingException e) {
     
    	e.printStackTrace();
     
    	} catch (ClientProtocolException e) {
     
    	e.printStackTrace();
     
    	} catch (IOException e) {
     
    	e.printStackTrace();
     
    	}
     
    	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();
     
    	json = sb.toString();
     
    	} catch (Exception e) {
     
    	Log.e("Buffer Error", "Error converting result " + e.toString());
     
    	}
     
    	// convertir le résultat qui est sous format d'un String en un JSONObject
    	try {
     
    	jObj = new JSONObject(json);
     
    	} catch (JSONException e) {
     
    	Log.e("JSON Parser", "Error parsing data " + e.toString());
     
    	}
     
    	// retourner un JSONObject
    	return jObj;
     
    	} 
    }
    ListItimizedOverlay.java
    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
    package com.example.recherche_restaurant;
     
    import java.util.ArrayList;
     
    import android.app.AlertDialog;
    import android.content.Context;
    import android.graphics.drawable.Drawable;
     
    import com.google.android.maps.ItemizedOverlay;
    import com.google.android.maps.OverlayItem;
     
    public class ListItimizedOverlay extends ItemizedOverlay<OverlayItem> {
     
    	private Context context;
    	private ArrayList<OverlayItem> arrayListOverlayItem = new ArrayList<OverlayItem>();
    	public ListItimizedOverlay(Drawable defaultMarker) {
    		super(boundCenterBottom(defaultMarker));
    		// TODO Auto-generated constructor stub
    	}
    	public ListItimizedOverlay(Drawable defaultMarker, Context pContext) 
    	{
    	  super(boundCenterBottom(defaultMarker));
    	  this.context = pContext;
    	}
     
    	@Override
    	protected OverlayItem createItem(int i) {
    		// TODO Auto-generated method stub
    				return arrayListOverlayItem.get(i);
    	}
     
    	@Override
    	public int size() {
    		// TODO Auto-generated method stub
    		return arrayListOverlayItem.size();
    	}
    	@Override
    	protected boolean onTap(int index) 
    	{
    	  OverlayItem item = arrayListOverlayItem.get(index);
    	  AlertDialog.Builder dialog = new AlertDialog.Builder(context);
    	  dialog.setTitle(item.getTitle());
    	  dialog.setMessage(item.getSnippet());
    	  dialog.show();
    	  return true;
    	}
     
     
    	public void addOverlayItem(OverlayItem overlay) 
    	{
    		arrayListOverlayItem.add(overlay);
    	    populate();
    	}
     
    }

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java / C++
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java / C++

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Points : 228
    Points
    228
    Par défaut
    Re,

    J'ai oublié de dire le LogCat t'informe aussi sur la ligne qui pose problème, donc si tu pouvais le fournir aussi, on gagnerais du temps déso.
    Pensez à lire les règles du forum avant de poster.

    Si un poste ou un commentaire vous a été utile, merci de mettre un petit !
    Problème résolu? alors pensez à cliquer sur .
    Si vous avez trouvé la solution tout seul, merci de la poster, ça pourrait aider les suivants!

    Bonjour, s'il vous plaît et merci => ses mots ne coûtent rien, mais ils font toujours plaisirs!

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Java / C++
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java / C++

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Points : 228
    Points
    228
    Par défaut
    Re,

    à première vue, je dirais que l'erreur vient de la ligne 100, lorsque tu utilise un object de type Location, qui peut potentiellement être null. Mais tu ne vérifie pas si il est null ou pas.

    A voir!
    Pensez à lire les règles du forum avant de poster.

    Si un poste ou un commentaire vous a été utile, merci de mettre un petit !
    Problème résolu? alors pensez à cliquer sur .
    Si vous avez trouvé la solution tout seul, merci de la poster, ça pourrait aider les suivants!

    Bonjour, s'il vous plaît et merci => ses mots ne coûtent rien, mais ils font toujours plaisirs!

  6. #6
    Membre du Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Février 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Etudiante
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2013
    Messages : 95
    Points : 68
    Points
    68
    Par défaut
    D'accord,
    Le logcat:
    03-15 17:08:49.871: D/dalvikvm(1123): GC_CONCURRENT freed 166K, 11% free 2659K/2972K, paused 17ms+30ms, total 378ms
    03-15 17:08:49.871: W/CursorWrapperInner(1123): Cursor finalized without prior close()
    03-15 17:08:49.891: W/CursorWrapperInner(1123): Cursor finalized without prior close()
    03-15 17:08:50.481: I/Maps.MyLocationOverlay(1123): Request updates from gps
    03-15 17:08:50.491: D/AndroidRuntime(1123): Shutting down VM
    03-15 17:08:50.491: W/dalvikvm(1123): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
    03-15 17:08:50.571: E/AndroidRuntime(1123): FATAL EXCEPTION: main
    03-15 17:08:50.571: E/AndroidRuntime(1123): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.recherche_restaurant/com.example.recherche_restaurant.MainActivity}: java.lang.NullPointerException
    03-15 17:08:50.571: E/AndroidRuntime(1123): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at android.app.ActivityThread.access$600(ActivityThread.java:141)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at android.os.Handler.dispatchMessage(Handler.java:99)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at android.os.Looper.loop(Looper.java:137)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at android.app.ActivityThread.main(ActivityThread.java:5041)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at java.lang.reflect.Method.invokeNative(Native Method)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at java.lang.reflect.Method.invoke(Method.java:511)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at dalvik.system.NativeStart.main(Native Method)
    03-15 17:08:50.571: E/AndroidRuntime(1123): Caused by: java.lang.NullPointerException
    03-15 17:08:50.571: E/AndroidRuntime(1123): at com.example.recherche_restaurant.MainActivity.onCreate(MainActivity.java:100)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at android.app.Activity.performCreate(Activity.java:5104)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
    03-15 17:08:50.571: E/AndroidRuntime(1123): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
    03-15 17:08:50.571: E/AndroidRuntime(1123): ... 11 more
    03-15 17:13:50.891: I/Process(1123): Sending signal. PID: 1123 SIG: 9
    MainActiviy:
    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
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    package com.example.recherche_restaurant;
     
    import java.io.InputStream;
     
     
     
    import java.util.List;
     
    import org.apache.http.HttpEntity;
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
     
    import com.example.recherche_restaurant.JsonParser;
    import com.example.recherche_restaurant.ListItimizedOverlay;
    import com.example.recherche_restaurant.R;
    import com.google.android.maps.GeoPoint;
    import com.google.android.maps.MapActivity;
    import com.google.android.maps.MapController;
    import com.google.android.maps.MapView;
    import com.google.android.maps.MyLocationOverlay;
    import com.google.android.maps.Overlay;
    import com.google.android.maps.OverlayItem;
     
    import android.content.Context;
    import android.graphics.drawable.Drawable;
    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    import android.os.AsyncTask;
    import android.os.Bundle;
     
    import android.view.KeyEvent;
     
    import android.widget.Toast;
     
    public class MainActivity extends  MapActivity  implements
    LocationListener {
     
     
    	static double longitude;
    	static double latitude;
    	private static double lat = 0;
        private static double lng = 0;
    	private static String url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location="+longitude+","+latitude+"&radius=500&types=food&name=harbour&sensor=true&key=AIzaSyDxms7wMJorpD9LZVRL9OiozgV1D9wJKxo";
    	private static final String TAG_results = "results";
    	private static final String TAG_geometry = "geometry";
    	private static final String TAG_location = "location";
    	private static final String TAG_lat = "lat";
    	private static final String TAG_lng = "lng";
    	JSONArray contacts = null;
     
        private MapView mapView = null;
        private LocationManager lm = null;
     
     
        private MapController mc = null;
        private MyLocationOverlay myLocation = null;
     
     
        HttpEntity httpEntity;
        static InputStream is = null;
     
    	static JSONObject jObj = null;
     
    	static String json = "";
     
     
     
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
    	setContentView(R.layout.activity_main);
     
     
    	mapView = (MapView) this.findViewById(R.id.mapView);
    	mapView.setBuiltInZoomControls(true);
    	lm = (LocationManager) this.getSystemService(LOCATION_SERVICE);
    	lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0, this);
    	lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 0,
    		this);
     
     
    	mc = mapView.getController();
    	mc.setZoom(19);
     
    	myLocation = new MyLocationOverlay(getApplicationContext(), mapView);
    	myLocation.runOnFirstFix(new Runnable() {
    	    public void run() {
    		mc.animateTo(myLocation.getMyLocation());
    		mc.setZoom(17);
    	    }
    	});
     
    	mapView.getOverlays().add(myLocation);
    	myLocation.enableMyLocation();
    	 lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    	 Location l = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    	 longitude = l.getLongitude();
    	 latitude = l.getLatitude(); 
    	 getData();
        }
        private void getData() {
    		Drawable drawable = this.getResources().getDrawable(R.drawable.ic_launcher);
    		final ListItimizedOverlay itemizedoverlay = new ListItimizedOverlay(drawable,this);
    	new AsyncTask<Void, Void, JSONObject>(){
    		@Override
    	protected JSONObject doInBackground(Void... params) {
    			// instancier la classe JsonParser
    			JsonParser jParser = new JsonParser ();
    			// récupérer le JSONObject à partir de l’url du fichier employes.json
    			JSONObject json = jParser.getJSONFromUrl(url);
     
    			return json;
    		};
     
     
    	protected void onPostExecute(JSONObject json) {
     
    		try {
     
    			// récupérer la liste de tous les employés
    			JSONArray results = json.getJSONArray(TAG_results);
     
    			// parcourir toute la liste des employés
    			for(int i = 0; i < results.length(); i++){
     
    			// récupérer un employé de type JSONObject
    			JSONObject emp = results.getJSONObject(i);
     
    			// récupérer le JSONObject phone qui contient deux items
    			JSONObject geometry = emp.getJSONObject(TAG_geometry);
    			JSONObject location = geometry.getJSONObject(TAG_location);
    			String latitude = location.getString(TAG_lat);
    			String longitude= location.getString(TAG_lng);
    			double b = Double.parseDouble(latitude);
    			double c = Double.parseDouble(longitude);
     
     
    		GeoPoint geoPoint = new GeoPoint((int) (c* 1E6) , (int)(b* 1E6));
    		OverlayItem overlayitem = new OverlayItem(geoPoint, "Hello from", "Tahiti");
    		itemizedoverlay.addOverlayItem(overlayitem);
     
     
    		List<Overlay> mapOverlays = mapView.getOverlays();
    		mapOverlays.add(itemizedoverlay);
     
    		}
    		}
    		catch(JSONException e)
    		{
    			e.printStackTrace();
    		}
    	};
     
    }.execute();
        }
     
     
        @Override
        protected void onResume() {
    	super.onResume();
    	myLocation.enableMyLocation();
    	myLocation.enableCompass();
        }
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
    	if (keyCode == KeyEvent.KEYCODE_S) {
    	    mapView.setSatellite(!mapView.isSatellite());
    	    return true;
    	}
    	return super.onKeyDown(keyCode, event);
        }
     
     
    	@Override
    	public void onLocationChanged(Location location) {
    		lat = location.getLatitude();
    		lng = location.getLongitude();
    		Toast.makeText(
    			getBaseContext(),
    			"Location change to : Latitude = " + lat + " Longitude = "
    				+ lng, Toast.LENGTH_SHORT).show();
    		GeoPoint p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
    		mc.animateTo(p);
    		mc.setCenter(p);
     
    	}
     
     
     
     
     
    	@Override
    	public void onProviderDisabled(String arg0) {
    		// TODO Auto-generated method stub
     
    	}
     
     
    	@Override
    	public void onProviderEnabled(String arg0) {
    		// TODO Auto-generated method stub
     
    	}
     
     
    	@Override
    	public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
    		// TODO Auto-generated method stub
     
    	}
     
     
    	@Override
    	protected boolean isRouteDisplayed() {
    		// TODO Auto-generated method stub
    		return false;
    	}
     
    }
    JsonParser.java
    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
    package com.example.recherche_restaurant;
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
     
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.json.JSONException;
    import org.json.JSONObject;
     
    import android.util.Log;
     
    public class JsonParser {
    	static InputStream is = null;
     
    	static JSONObject jObj = null;
     
    	static String json = "";
     
    	// Constructeur de notre classe
    	public JsonParser() {
     
    	}
     
    	public JSONObject getJSONFromUrl(String url) {
     
    	// début de la requête http
    	try {
     
    	// faire appel à defaultHttpClient
    	DefaultHttpClient httpClient = new DefaultHttpClient();
     
    	HttpPost httpPost = new HttpPost(url);
     
    	HttpResponse httpResponse = httpClient.execute(httpPost);
     
    	HttpEntity httpEntity = httpResponse.getEntity();
     
    	is = httpEntity.getContent();
     
    	} catch (UnsupportedEncodingException e) {
     
    	e.printStackTrace();
     
    	} catch (ClientProtocolException e) {
     
    	e.printStackTrace();
     
    	} catch (IOException e) {
     
    	e.printStackTrace();
     
    	}
     
    	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();
     
    	json = sb.toString();
     
    	} catch (Exception e) {
     
    	Log.e("Buffer Error", "Error converting result " + e.toString());
     
    	}
     
    	// convertir le résultat qui est sous format d'un String en un JSONObject
    	try {
     
    	jObj = new JSONObject(json);
     
    	} catch (JSONException e) {
     
    	Log.e("JSON Parser", "Error parsing data " + e.toString());
     
    	}
     
    	// retourner un JSONObject
    	return jObj;
     
    	} 
    }
    ListItimizedOverlay.java
    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
    package com.example.recherche_restaurant;
     
    import java.util.ArrayList;
     
    import android.app.AlertDialog;
    import android.content.Context;
    import android.graphics.drawable.Drawable;
     
    import com.google.android.maps.ItemizedOverlay;
    import com.google.android.maps.OverlayItem;
     
    public class ListItimizedOverlay extends ItemizedOverlay<OverlayItem> {
     
    	private Context context;
    	private ArrayList<OverlayItem> arrayListOverlayItem = new ArrayList<OverlayItem>();
    	public ListItimizedOverlay(Drawable defaultMarker) {
    		super(boundCenterBottom(defaultMarker));
    		// TODO Auto-generated constructor stub
    	}
    	public ListItimizedOverlay(Drawable defaultMarker, Context pContext) 
    	{
    	  super(boundCenterBottom(defaultMarker));
    	  this.context = pContext;
    	}
     
    	@Override
    	protected OverlayItem createItem(int i) {
    		// TODO Auto-generated method stub
    				return arrayListOverlayItem.get(i);
    	}
     
    	@Override
    	public int size() {
    		// TODO Auto-generated method stub
    		return arrayListOverlayItem.size();
    	}
    	@Override
    	protected boolean onTap(int index) 
    	{
    	  OverlayItem item = arrayListOverlayItem.get(index);
    	  AlertDialog.Builder dialog = new AlertDialog.Builder(context);
    	  dialog.setTitle(item.getTitle());
    	  dialog.setMessage(item.getSnippet());
    	  dialog.show();
    	  return true;
    	}
     
     
    	public void addOverlayItem(OverlayItem overlay) 
    	{
    		arrayListOverlayItem.add(overlay);
    	    populate();
    	}
     
    }
    Manifest.xml
    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.recherche_restaurant"
        android:versionCode="1"
        android:versionName="1.0" >
     
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />
          <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
     
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
             <uses-library android:name="com.google.android.maps" />
            <activity
                android:name="com.example.recherche_restaurant.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>

  7. #7
    Membre actif
    Homme Profil pro
    Développeur Java / C++
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java / C++

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Points : 228
    Points
    228
    Par défaut
    Re,

    Je suis content, dans mon précédent poste je ne me suis pas trompé, c'est effectivement à la ligne 100 que tu a un problème de pointeur null. Il faut que tu gère le cas!
    Pensez à lire les règles du forum avant de poster.

    Si un poste ou un commentaire vous a été utile, merci de mettre un petit !
    Problème résolu? alors pensez à cliquer sur .
    Si vous avez trouvé la solution tout seul, merci de la poster, ça pourrait aider les suivants!

    Bonjour, s'il vous plaît et merci => ses mots ne coûtent rien, mais ils font toujours plaisirs!

  8. #8
    Membre du Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Février 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Etudiante
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2013
    Messages : 95
    Points : 68
    Points
    68
    Par défaut
    Je ne peut pas le corriger . Est que tu peut m'aider de plus s'il vous plais.

  9. #9
    Membre actif
    Homme Profil pro
    Développeur Java / C++
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java / C++

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Points : 228
    Points
    228
    Par défaut
    Re,

    Heu.. je dois t'avouer que je n'ai jamais utilisation la localisation sous Android (j'en suis à mes débuts moi aussi ).

    Ce que je ferais dans un premier temps, c'est vérifier la valeur du Location qui est retourné, si sa valeur est null je ne fait rien, sinon je peut m'en servir.

    Ensuite, le location manager te permet d'avoir une liste des "Providers" disponible (cf. doc android).

    Et tu peut aussi, en utilisant un GpsStatus.Listener, t peut t'arranger pour être sur d'avoir la localisation du mobile lorsque tu la demande.

    En gros: utilise getLastKnownLocation(), en utilisant un provider dispo, lorsque onGpsSatusChanged(int event) te fourni event==GPS_EVENT_FIRST_FIX. Et je pense que là tu auras une première localisation cohérente.

    J'espère que tu auras compris

    EDIT: J'espère aussi ne pas raconter trop de bêtise, si un expert de la localisation sous Android passe par là, surtout qu'il n'hésite pas à reprendre ou confirmer mes dirs!!!
    Pensez à lire les règles du forum avant de poster.

    Si un poste ou un commentaire vous a été utile, merci de mettre un petit !
    Problème résolu? alors pensez à cliquer sur .
    Si vous avez trouvé la solution tout seul, merci de la poster, ça pourrait aider les suivants!

    Bonjour, s'il vous plaît et merci => ses mots ne coûtent rien, mais ils font toujours plaisirs!

  10. #10
    Membre du Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Février 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Etudiante
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2013
    Messages : 95
    Points : 68
    Points
    68
    Par défaut
    Merci bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exception : pointeur null !
    Par Invité dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 20/04/2011, 17h17
  2. Exception de pointeur null
    Par skouza dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 25/08/2010, 13h34
  3. get => pointeur null apres fermeture d'une sous-fenetre
    Par gorgonite dans le forum AWT/Swing
    Réponses: 15
    Dernier message: 11/02/2006, 21h42
  4. [Info][Mémoire] utilisée pour un pointeur null
    Par thomas_strass dans le forum Langage
    Réponses: 14
    Dernier message: 04/11/2004, 12h48
  5. Réponses: 4
    Dernier message: 06/04/2004, 21h57

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