entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Error en doInBackground de Assyntasck al compilar en Android

Hola, tengo un problema al compilar mi app:
Uso Assyntasck para enviar peticiones GET y POST, lo tengo dividido en MVP. Al momento de compilar un GET me marca este error:

03-27 17:19:15.720    2082-2111/com.jadeGame.app_mobil E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #3
java.lang.RuntimeException: An error occured while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:299)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
        at java.util.concurrent.FutureTask.run(FutureTask.java:239)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
        at java.lang.Thread.run(Thread.java:856)
 Caused by: java.lang.NullPointerException
        at Presentadores.PresentadorMenuJuego$GET_task.doInBackground(PresentadorMenuJuego.java:59)
        at Presentadores.PresentadorMenuJuego$GET_task.doInBackground(PresentadorMenuJuego.java:50)
        at android.os.AsyncTask$2.call(AsyncTask.java:287)
        at java.util.concurrent.FutureTask.run(FutureTask.java:234)

        

    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)

Bien aquí esta mi método para el GET:

 public Respuesta GET_juego(String email, String token, int juego_id){
    Respuesta respuesta = new Respuesta();
    StringBuilder stringBuilder = new StringBuilder();
    HttpClient httpClient = new DefaultHttpClient();
    String url_user_path = this.url_juegos_path.replace(":id", String.valueOf(juego_id));
    HttpGet httpGet = new HttpGet(url_root + url_user_path + "?user_email=" + email + "&user_token=" + token);
    try {
        HttpResponse response = httpClient.execute(httpGet);
        HttpEntity entity = response.getEntity();
        if (entity != null) {
            String result = EntityUtils.toString(entity);
            Log.i(TAG, "GET_juegos: respuesta en JSON: " + result);
            JSONObject respuesta_json = new JSONObject(result);
            Log.i(TAG, "GET_juego: Success: " + respuesta_json.get("success").toString());
            if (respuesta_json.get("success").toString() == "true") {
                respuesta.error = false;
                Log.i(TAG, "Respuesta: se recibió respuesta "); //
            }

        } else {
            Log.i(TAG, "GET_juego: Error el mostrar el JSON");
        }
    } catch (Exception e) {
        e.getLocalizedMessage();
        e.printStackTrace();
        Log.e(TAG, "GET_juego: " + e);
    }
    return respuesta;
}

public static class Respuesta{
    public String usuario;
    public String token;
    public Boolean error;
    public int juego_id;

    public Respuesta(){
        usuario = null;
        token = null;
        error = true;
    }
}

Aquí esta de Assyntasck:

 public class GET_task extends AsyncTask<Void, Void, Boolean> {

    GET_task() {
    }

    @Override
    protected Boolean doInBackground(Void... params) {
        try {
            Thread.sleep(100);
          return juegos_usuario.get_juegos();
        } catch (InterruptedException e) {

        }
        return false;
    }

    @Override
    public void onPostExecute(final Boolean success){
        get_task = null;
        if(success) {

        } else{

        }
    }

    @Override
    protected void onCancelled(){
        get_task = null;
    }

}

}
método de juegos_usuarios que llama al GET:

 public boolean get_juegos() {
    JuegoUsuarioHTTP modelo_juegohttp = new JuegoUsuarioHTTP();
    JuegoUsuarioHTTP.Respuesta juego;
    juego = modelo_juegohttp.GET_juego(this.usuario, this.token, this.id_juego);
    return  juego.error;

0voto

white comentado

En el código que pones, cual es la linea 59 y cual la linea 50 ? de acuerdo al log:

at Presentadores.PresentadorMenu...$GET_task.doInBackground(PresentadorMenuJuego.java:59)
at Presentadores.PresentadorMenu...$GET_task.doInBackground(PresentadorMenuJuego.java:50)

0voto

x4mp73r comentado

Es en el Assyntasck:

 return juegos_usuario.get_juegos();
    } catch (InterruptedException e) {

0voto

white comentado

podrías agregar el codigo donde defines e inicializas la clase juegos_usuario?

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta