I have published an app using Fabric Crashlytics and in these last days I'm receiving this error crash user:
Fatal Exception: java.lang.NullPointerException Attempt to invoke virtual method 'void ...android.controller.CustomListAdapter.notifyDataSetChanged()' on a null object reference
and the code of fragment impacted is this:
private void loadListView(String response,float lowerLimit,float upperLimit)
{
//Log.e("test", "loadList:"+response);
if(Globals.geoJsonResponse.size() == 0)
{
//Log.e("test", "aaa:"+Globals.geoJsonResponse.size());
try {
JSONObject featureCollection=new JSONObject(response);
try{
FirstProjectApplication.mSearchSubTitle = featureCollection.getString("subTitle");
getActivity().getActionBar().setSubtitle(FirstProjectApplication.mSearchSubTitle);
}catch(Exception e){}
globalResponseObject.clear();
popupResponseObject.clear();
JSONArray features=featureCollection.getJSONArray("features");
for (int i = 0; i < features.length(); i++) {
JSONObject properties=features.getJSONObject(i);
String type = properties.getJSONObject("properties").getString("type");
String author = properties.getJSONObject("properties").getString("author");
float mag=Float.parseFloat(properties.getJSONObject("properties").getString("mag"));
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date date1 = format.parse(properties.getJSONObject("properties").getString("time"));
GeoJsonResponse obj=new GeoJsonResponse(
properties.getJSONObject("properties").getString("eventId"),
properties.getJSONObject("properties").getString("author"),
properties.getJSONObject("properties").getString("place"),
Double.parseDouble(properties.getJSONObject("properties").getString("mag")),
Double.parseDouble(properties.getJSONObject("geometry").getJSONArray("coordinates").getString(2)),
properties.getJSONObject("properties").getString("time"),date1,
Double.parseDouble(properties.getJSONObject("geometry").getJSONArray("coordinates").getString(1)), //lat,lon is reversed
Double.parseDouble(properties.getJSONObject("geometry").getJSONArray("coordinates").getString(0))
);
if(author.equals("AUTOMATIC")) {
popupResponseObject.add(obj);
} else {
if((mag>=lowerLimit&&mag<upperLimit)) {
globalResponseObject.add(obj);
//Log.e("test", "mag:"+mag);
}
Globals.geoJsonResponse.add(obj);
}
}
// Collections.sort(globalResponseObject, new DateSorter());
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//Log.e("test", e.getLocalizedMessage());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//Log.e("test", e.getLocalizedMessage());
}
sort();
adpater=new CustomListAdapter(getActivity(), globalResponseObject);
geoJSON.setAdapter(adpater);
//Log.e("test", "bbb:"+globalResponseObject.size());
} else {
//Log.e("test", "bbb:"+globalResponseObject.size());
globalResponseObject.clear();
for(GeoJsonResponse geo_response:Globals.geoJsonResponse)
{
if((geo_response.getMagnitude()>=lowerLimit&&geo_response.getMagnitude()<upperLimit)) globalResponseObject.add(geo_response);
}
sort();
adpater.notifyDataSetChanged();
}
if(globalResponseObject.size() == 0) {
new AlertDialog.Builder(getActivity(),R.style.AppCompatAlertDialogStyle)
.setTitle(getString(R.string.allert))
.setMessage(getString(R.string.allertsms ))
.setPositiveButton("Ok",null)
.show();
}
}
the line error is adpater.notifyDataSetChanged(); On my device i doesn't have any crash. Any help please? Thanks