Problema extraño con ksoap2 en android 4.x

590 views
Skip to first unread message

Darknoe

unread,
Nov 20, 2012, 3:10:31 AM11/20/12
to tarrac...@googlegroups.com
Buenos días,

Estoy implementando una app que consume webservices, hasta aquí todo normal, pero me hace una cosa muy muy rara que no llego a entender.

Tengo una clase Webservice.java donde tengo definidas todas las llamadas a mi webservice del backend utilizando la librería ksoap2. En mi primera activity hago una llamada a este webservice, me devuelve una serie de datos y los muestro por pantalla, hasta aquí funciona fenomenal, pero a la que vuelvo a hacer una segunda llamada al webservice, ya sea en la misma activity o en otra activity, me salta error y siempre peta, pero sólo peta en los android 4.X, esto es lo raro.

Lo he testeado en dos Nexus 7 y en emulador con la 4.2 y da error, pero el mismo código en un SGS con 2.3.4, un Galaxy Tab con 2.3 y emuladores de 2.2 funciona de fábula.

Tiene que haber alguna especie de problema que no veo con mi webservice y el android 4.2, ¿o puede que sea algún error de la librería ksoap2?

Este es el log de error que me aparece cuando hago la segunda llamada al webservice en android 4.x:

11-20 07:57:47.967: E/AndroidRuntime(770): FATAL EXCEPTION: main
11-20 07:57:47.967: E/AndroidRuntime(770): java.lang.NullPointerException
11-20 07:57:47.967: E/AndroidRuntime(770): at org.ksoap2.serialization.SoapSerializationEnvelope.getResponse(SoapSerializationEnvelope.java:521)
11-20 07:57:47.967: E/AndroidRuntime(770): at webservice.Webservice.getData(Webservice.java:324)
11-20 07:57:47.967: E/AndroidRuntime(770): at com.miapp.Home$2$1.run(Home.java:172)
11-20 07:57:47.967: E/AndroidRuntime(770): at android.os.Handler.handleCallback(Handler.java:725)
11-20 07:57:47.967: E/AndroidRuntime(770): at android.os.Handler.dispatchMessage(Handler.java:92)
11-20 07:57:47.967: E/AndroidRuntime(770): at android.os.Looper.loop(Looper.java:137)
11-20 07:57:47.967: E/AndroidRuntime(770): at android.app.ActivityThread.main(ActivityThread.java:5039)
11-20 07:57:47.967: E/AndroidRuntime(770): at java.lang.reflect.Method.invokeNative(Native Method)
11-20 07:57:47.967: E/AndroidRuntime(770): at java.lang.reflect.Method.invoke(Method.java:511)
11-20 07:57:47.967: E/AndroidRuntime(770): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-20 07:57:47.967: E/AndroidRuntime(770): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-20 07:57:47.967: E/AndroidRuntime(770): at dalvik.system.NativeStart.main(Native Method)


¿Os ha pasado esto alguna vez? :S

Un saludo!

jordi vaca

unread,
Nov 20, 2012, 3:37:06 AM11/20/12
to tarrac...@googlegroups.com
Buenas!

Pues así a botepronto tiene toda la pinta de ser un error de la librería ksoap.

Mira si esto se aplica a tu error:

¡Saludos!

Darknoe

unread,
Nov 20, 2012, 4:30:14 AM11/20/12
to tarrac...@googlegroups.com
Hola Jordi!

Gracias por tu respuesta :)

Al final va a ser que no es un error de la librería, he rebuscado más a fondo y resulta que al nene (android) no le gusta que le hagas threads "normales" en el UI principal, he solucionado el problema haciendo la llamada al webservice dentro de un AsynkTask :)

Dejo aquí un enlace a un blog que explica bastante bien como implementarlo por si alguien lo necesita:


Un saludo.

Sergi Martínez

unread,
Nov 20, 2012, 5:34:35 AM11/20/12
to tarrac...@googlegroups.com
Antiguamente no había problema, de hecho antes de conocer los asynctask me hinche a threads y mensajes.

El problema puede venir por que conectarse a internet desde el main thread está prohibido hace un tiempo y hay que activarlo, y alomojó si haces tu los threads no lo considera como separado.


2012/11/20 Darknoe <noe...@gmail.com>

--
 
 
 



--

Sergi Martínez


sergi.m...@gmail.com

Elmer Palacios

unread,
Sep 30, 2014, 2:42:37 AM9/30/14
to tarrac...@googlegroups.com
hola buen dia tengo un problema raro resutla que tengo una libreria ksoap desde la que hago una consultaa una base dedatos remota a la primera da pero cuando dejo la acivity por un rato y vuelvo hacer la peticion se deitene no se por que por que si lo hago varias vece no da problemas solo cuando pasa cierto tiempo sin utilizar la app 

Sergi Martínez

unread,
Sep 30, 2014, 2:47:09 AM9/30/14
to tarrac...@googlegroups.com

Huele a que la actividad es destruida y no se regenera bien. ¿le pasas la actividad como contexto? Prueba a pasarle application con getApplicationcontext.

Con tan poca info es dificil. Yo estoy usando ksoap sin problema, eso si, con codigo generado a partir del wsdl.

--

---
You received this message because you are subscribed to the Google Groups "TarracoDroid Android Community Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tarracodroid...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages