Mihawk Mihawk - 2 months ago 16
Android Question

Nullpointer in Volley

i´m getting a NullPointerException when i do the connection to my API using Volley, this is the method i'm using:

List<Empresas> empresas = rellenar();




private List<Empresas> rellenar() {
final List<Empresas> empresas2 = null;

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, "APIurl",(JSONObject)null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("results");
int id;
String nombre_franquicia;
String nombre_categoria;
String nombre;
String descripcion;
String contenido;
String direccion;
String foto_negocio;
String foto_principal;
String horario;
String telefono;
for(int i=0; i<jsonArray.length(); i++) {
JSONObject objeto = jsonArray.getJSONObject(i);
if (objeto.getString("id") != null && objeto.getString("id")!="null") {
id = Integer.parseInt(objeto.getString("id"));
} else {
id = 0;
}
if (objeto.getString("nombre_franquicia")!=null && objeto.getString("nombre_franquicia")!="null"){
nombre_franquicia = objeto.getString("nombre_franquicia");
}else{
nombre_franquicia = "No disponible";
}
if(objeto.getString("nombre_categoria")!=null && objeto.getString("nombre_categoria")!="null") {
nombre_categoria = objeto.getString("nombre_categoria");
}else{
nombre_categoria = "No disponible";
}
if(objeto.getString("nombre")!=null && objeto.getString("nombre")!="null") {
nombre = objeto.getString("nombre");
}else{
nombre = "No disponible";
}
if(objeto.getString("descripcion")!=null && objeto.getString("descripcion")!="null") {
descripcion = objeto.getString("descripcion");
}else{
descripcion = "No disponible";
}
if(objeto.get("contenido")!=null && objeto.getString("contenido")!="null") {
contenido = objeto.getString("contenido");
}else{
contenido = "No disponible";
}
if(objeto.getString("direccion")!=null && objeto.getString("direccion")!="null") {
direccion = objeto.getString("direccion");
}else{
direccion = "No disponible";
}
if(objeto.getString("foto_negocio")!=null && objeto.getString("foto_negocio")!="null") {
foto_negocio = objeto.getString("foto_negocio");
}else{
foto_negocio = "No disponible";
}
if(objeto.getString("foto_principal")!=null && objeto.getString("foto_principal")!="null") {
foto_principal = objeto.getString("foto_principal");
}
else{
foto_principal = "No disponible";
}
if(objeto.getString("horario")!=null && objeto.getString("horario")!="null") {
horario = objeto.getString("horario");
}else{
horario = "No disponible";
}
if(objeto.getString("telefono")!=null && objeto.getString("telefono")!="null") {
telefono = objeto.getString("telefono");
}
else{
telefono = "No disponible";
}



Empresas negocio = new Empresas( id,nombre_franquicia, nombre_categoria, nombre, descripcion,
contenido, direccion, foto_negocio,foto_principal, horario,telefono);

empresas2.add(negocio);
}

} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){
Log.e("VOLLEY","ERROR");
}
}
);
requestQueue.add(jsonObjectRequest);
return empresas2;
}


When the activity starts the
List<Empresas> empresas
calls the method in the onCreateView of the fragment and after a few seconds i get a NullPointerException in
empresas2.add(negocio)
it's the first time i'm working with Volley and i dont understand it yet.

Answer Source

final List<Empresas> empresas2 = null; is NULL assign in your code.

Replace with:

List<Empresas> empresas2 = new ArrayList<Empresas>();