Error que no soy capaz de ver ni de arreglar

30 views
Skip to first unread message

aaRon

unread,
Jan 27, 2012, 6:41:29 AM1/27/12
to desarrollad...@googlegroups.com
Hola amig@s, recurro a vosotros para que me ayudéis en este error que me da que no soy capaz de arreglar y nose de donde me puede venir. Quiero mostrar un progressdialog mientras se ejecuta un hilo, este es el código que tengo del hilo:

Thread hil = new Thread(){
    @Override
        public void run(){    
    while(continuar){
    Log.w("DEBUG", "entra en el hilo.");
    boolean ver = CheckCitas(f, g);
    if(ver){
    StopHilo();
    Log.w("DEBUG", "cierra el hilo.");
    }
    }//FIN while
    Log.w("DEBUG", "cierra el dialogo.");    
    }//FIN run

        };//FIN hil
       
        hil.start();//Iniciamos el hilo.

El error me da en la linea donde llamo al método "CheckCitas(f,g)" que almaceno el valor en un boolean. Os dejo también el método ese:

public boolean CheckCitas(ArrayList<String> r, ArrayList<String> y){
int i = 0;
int j = 0;
String s1 = "";
String s2 = "";
boolean esta = false;
String hora = "";
while(i < r.size()){
s1 = r.get(i).toString();
while(j < y.size()){
s2 = y.get(j).toString();
if(s1.equals(s2)){
j = y.size();
}//FIN if
if(j < y.size() && !esta)
j++;
}//FIN while
j = 0;
if(!esta){
int id = 0;
//Insertamos en la base de datos.
Conexion.Conectar(this);
Log.w("DEBUG", "numero ss: " + NumeroSS.getText().toString());
Log.w("DEBUG", "fecha: " + s1);
//Obtenemos la hora correspondiente a la fecha que no esta en la base de datos.
hora = web.GetHoraCita(this, NumeroSS.getText().toString(), s1);
Log.w("DEBUG", "hora: " + hora);
Cursor c = Conexion.db.rawQuery("SELECT MAX(ID_CITA) FROM CITAS", null);
//Comprobamos si el cursor contiene datos.
    if(c.moveToFirst()){
    //Comprobamos si el registro que nos devuelve es null.
    if(c.getString(0) == null)
    //El id que vamos ha insertar, le sumamos uno mas al id mas alto que hay en la tabla.
    id = 0 + 1;
    else
    id = Integer.parseInt(c.getString(0)) + 1;
    }//FIN if
    else{
    id = 1;
    }//FIN else
ContentValues nuevoRegistro = new ContentValues();
nuevoRegistro.put("ID_CITA", id);
nuevoRegistro.put("FECHA", s1);
nuevoRegistro.put("HORA", hora);
nuevoRegistro.put("NUM_SEG_SOCIAL", NumeroSS.getText().toString());
Conexion.db.insert("CITAS", null, nuevoRegistro);
}//FIN if
i++;
esta = false;
}//FIN while
Conexion.Desconectar();//Desconectamos de la base de datos.
return true;
}//FIN CheckCitas

El error que me da es este:

01-26 04:58:05.630: WARN/dalvikvm(29368): threadid=7: thread exiting with uncaught exception (group=0xb57cb290)
01-26 04:58:05.630: ERROR/AndroidRuntime(29368): FATAL EXCEPTION: Thread-8
01-26 04:58:05.630: ERROR/AndroidRuntime(29368): java.lang.NullPointerException
01-26 04:58:05.630: ERROR/AndroidRuntime(29368):     at peticion.citas.Ficha.CheckCitas(Ficha.java:555)
01-26 04:58:05.630: ERROR/AndroidRuntime(29368):     at peticion.citas.Ficha$4.run(Ficha.java:447)
01-26 04:58:05.630: WARN/ActivityManager(2019):   Force finishing activity peticion.citas/.Ficha


He mirado y remirado, he probado, y nose que puede ser. ¿ Alguien me puede ayudar?
Un saludo.

Juan de Dios Maldonado Sánchez

unread,
Jan 27, 2012, 6:51:07 AM1/27/12
to desarrollad...@googlegroups.com
En el archivo Ficha.java, más en concreto, en la línea 555 estás llamando a un método de un objeto que está a null.

--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para ver este debate en la Web, visita https://groups.google.com/d/msg/desarrolladores-android/-/0GdN9mcrC7kJ.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/desarrolladores-android?hl=es.



--
An'Brain - Prueba el nuevo widget inteligente para tu Android.
Idiotizer Free - Idiotiza a tus amigos. (Se requieren auriculares)
Track My App - Realiza un seguimiento de tus aplicaciones en el Android market.

Jose Alberto Rodríguez Martín

unread,
Jan 27, 2012, 6:55:01 AM1/27/12
to desarrollad...@googlegroups.com
Asi a vista, creo que cambiando esta linea:


public boolean CheckCitas(ArrayList<String> r, ArrayList<String> y){

por esta:

public static boolean CheckCitas(ArrayList<String> r, ArrayList<String> y){


Ya nos cuentas,

un saludo,

     Jose Alberto
Un saludo,

    José Alberto

--

Tlf. +34 651 50 67 72
Email. in...@josealbertonerja.com
Web. http://www.josealbertonerja.com
http://www.webmastersmalaga.com
http://www.cursoseomalaga.com
http://www.iniciador.com

aaRon

unread,
Jan 28, 2012, 5:27:08 AM1/28/12
to desarrollad...@googlegroups.com
¿ Alguien me hecha una mano por favor?

Juan de Dios Maldonado Sánchez

unread,
Jan 28, 2012, 5:37:41 AM1/28/12
to desarrollad...@googlegroups.com
Nadie debería echarte una  mano hasta que no dediques un tiempo a aprender a depurar una aplicación.

Si te damos de comer hoy, tendremos que hacerlo todos los días. Así que es mucho mejor enseñarte a conseguir la comida por tus propios medios.

En español, tutorial básico:

En inglés, tutorial bien completo:

Una vez sepas utilizar el depurador, verás cómo habrá merecido la pena.

On Sat, Jan 28, 2012 at 11:27 AM, aaRon <aaronma...@gmail.com> wrote:
¿ Alguien me hecha una mano por favor?

--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.

Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/desarrolladores-android?hl=es.

Jimmy Collazos || acido || cuatroxl.com

unread,
Jan 28, 2012, 6:16:14 AM1/28/12
to desarrollad...@googlegroups.com
@aaRon te recomiendo seguir las indicaciones de @juan Te va a ser muy útil en el futuro.

El depurador te está diciendo dónde, en qué línea y de que tipo tienes el error. Te lo pinta en ingles, ... pero es fácil de entender "NULL Exception...."

--
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::: J i m m y  C o l l a z o s :::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

aaRon

unread,
Jan 31, 2012, 7:29:54 AM1/31/12
to desarrollad...@googlegroups.com
Sigue dandome el mismo error, he depurado y las 3 variables que paso tienen valor. Si quereis os paso las capturas de los valores que tiene cada variable en la depuracion.

Leonardo Garcia

unread,
Jan 31, 2012, 7:44:51 AM1/31/12
to desarrollad...@googlegroups.com
Si el error sigue siendo un NullException en una determinada linea, son los errores mas faciles de identificar, solo tienes que ir a esa linea y preguntarte porque alguno de los valores es null.

para eso prueba ver que valores tienen antes de llegar ahi y de ahi para atras.

Tambien puedes probar de hacer una ejecucion paso a paso con el debugger al entrar a la funcion y ver el estado de cada una de las variables en cada una de las lineas, pero vamos, es justamente lo que decia Juande, es simplemente usar el depurador, que si no lo sabes usar, te recomiendo absolutamente que lo aprendas, todo este tipo de errores se pueden solucionar facilmente sabiendo interpretar los datos que el te otorga.

Lo mas importante es que puedas darte cuenta como resolver este tipo de cosas.

Suerte con eso, y no bajes los brazos, una de las herramientas que mas usaras para desarrollar sera justamente el depurador :)

Saludos

Leonardo



2012/1/31 aaRon <aaron...@gmail.com>
Sigue dandome el mismo error, he depurado y las 3 variables que paso tienen valor. Si quereis os paso las capturas de los valores que tiene cada variable en la depuracion.

--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.

aaRon

unread,
Jan 31, 2012, 11:31:43 AM1/31/12
to desarrollad...@googlegroups.com
Es que en la función no llega a entrar, el error da en la llamada a la función porque me tira en la linea de la llamada a la función, en el depurador he mirado el valor de las variables que paso y las 3 variables que paso ahora tienen valor. Os pongo las imágenes para que veáis que si tienen valor las variables que paso:

De verdad que no es para que me lo hagáis es que no encuentro el error.
Ayudadme por favor.


Jc Miñarro

unread,
Jan 31, 2012, 11:38:32 AM1/31/12
to desarrollad...@googlegroups.com
Ya que era un NullPointerException has mirado si la 
variable web está inicializada??
Posiblemente esa sea la variable que no está inicializada.

--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.

Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/desarrolladores-android?hl=es.



--
Un saludo,
Jc Miñarro

-------------------------------------------------------------------------------------------
CarteleraApp - Consulta la cartelera y estrenos de los cines españoles.

Juan de Dios Maldonado Sánchez

unread,
Jan 31, 2012, 12:26:21 PM1/31/12
to desarrollad...@googlegroups.com
En la excepción te aparece la línea donde estás llamando un método a objeto que vale null. Me resulta increíble pensar que todavía no has solucionado el problema. ¿Tanto cuesta ir a esa línea y mirar qué objeto utilizas que pueda valer null? O_o!

Leonardo Garcia

unread,
Jan 31, 2012, 1:38:09 PM1/31/12
to desarrollad...@googlegroups.com
Si las 3 variables tienen valor y tu llamas un metodo de un objeto web.[algoaqui] lo unico posible es que web sea null, como menciona Jose Carlos.

Y como tip adicional, ten cuidado con los hilos, evidentemente estas aprendiendo, y manejar el concepto, cuando lo mas probable es que sepas programar estructuradamente, no es lo mas simple de todo. 


Saludos y suerte

Leonardo

2012/1/31 Juan de Dios Maldonado Sánchez <jua...@gmail.com>

cristian

unread,
Feb 1, 2012, 10:05:25 AM2/1/12
to desarrolladores-android
Buenas,

Te recomendaria que pongas un punto de interrupcion en donde te dice
el log, que te da el error.
Si estas desarrollando con eclipse apreta "ctrl+l" y ahi pones el
numero de que te dice aca que es el 555
"at peticion.citas.Ficha.CheckCitas(Ficha.java:555) ".

Fijate que estas haciendo una iteraccion o sea algun elemento de la
lista que envias por parametro es null

Eso te sale solo usando el debugger o logeando en la consola los
parametros que recuperas con el toString();

Saludos


On 31 ene, 13:38, Leonardo Garcia <colo...@gmail.com> wrote:
> Si las 3 variables tienen valor y tu llamas un metodo de un objeto
> web.[algoaqui] lo unico posible es que web sea null, como menciona Jose
> Carlos.
>
> Y como tip adicional, ten cuidado con los hilos, evidentemente estas
> aprendiendo, y manejar el concepto, cuando lo mas probable es que sepas
> programar estructuradamente, no es lo mas simple de todo.
>
> Saludos y suerte
>
> Leonardo
>
> 2012/1/31 Juan de Dios Maldonado Sánchez <jua...@gmail.com>
>
>
>
>
>
>
>
> > En la excepción te aparece la línea donde estás llamando un método a
> > objeto que vale null. Me resulta increíble pensar que todavía no has
> > solucionado el problema. ¿Tanto cuesta ir a esa línea y mirar qué objeto
> > utilizas que pueda valer null? O_o!
>
> > On Tue, Jan 31, 2012 at 5:38 PM, Jc Miñarro <josecarlos.mina...@gmail.com>wrote:
>
> >> Ya que era un NullPointerException has mirado si la
> >> variable web está inicializada??
> >> Posiblemente esa sea la variable que no está inicializada.
>
> >> CarteleraApp<https://market.android.com/details?id=com.jcminarro.android.tools> -
> >> Consulta la cartelera y estrenos de los cines españoles.
>
> >>  --
> >> Has recibido este mensaje porque estás suscrito al grupo
> >> "desarrolladores-android" de Grupos de Google.
> >> Para publicar una entrada en este grupo, envía un correo electrónico a
> >> desarrollad...@googlegroups.com.
> >> Para anular tu suscripción a este grupo, envía un correo electrónico a
> >> desarrolladores-a...@googlegroups.com
> >> Para tener acceso a más opciones, visita el grupo en
> >>http://groups.google.com/group/desarrolladores-android?hl=es.
>
> > --
> > An'Brain<https://market.android.com/details?id=com.nidrico.apps.anbrain.lite> -
> > Prueba el nuevo widget inteligente para tu Android.
> > Idiotizer Free<https://market.android.com/details?id=com.nidrico.apps.idiotizerfree>- Idiotiza a tus amigos. (Se requieren auriculares)
> > Track My App<https://market.android.com/details?id=com.nidrico.apps.trackmyapp>- Realiza un seguimiento de tus aplicaciones en el Android market.
Reply all
Reply to author
Forward
0 new messages