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;