Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 27/09/13, 00:21:45
Avatar de berto1989
berto1989
Usuario invitado
Mensajes: n/a
 
Mensajes: n/a
Mencionado: comentarios
Tagged: hilos
parsear xml

Buenas, estoy intentando leer un XML online, pero al cargar el evento que se conecta al servidor me suelta lo siguiente:

Código:
09-27 00:17:17.850: E/AndroidRuntime(22131): FATAL EXCEPTION: main
09-27 00:17:17.850: E/AndroidRuntime(22131): java.lang.RuntimeException: Unable to start activity ComponentInfo{es.xxx.xxxx/es.xxx.xxxx.ListadoEventos}: java.lang.RuntimeException: android.os.NetworkOnMainThreadException
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2071)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2096)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at android.app.ActivityThread.access$600(ActivityThread.java:138)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1207)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at android.os.Handler.dispatchMessage(Handler.java:99)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at android.os.Looper.loop(Looper.java:213)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at android.app.ActivityThread.main(ActivityThread.java:4787)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at java.lang.reflect.Method.invokeNative(Native Method)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at java.lang.reflect.Method.invoke(Method.java:511)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at dalvik.system.NativeStart.main(Native Method)
09-27 00:17:17.850: E/AndroidRuntime(22131): Caused by: java.lang.RuntimeException: android.os.NetworkOnMainThreadException
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at es.xxx.xxxx.SaxXML.parseXML(SaxXML.java:47)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at es.xxx.xxxx.ListadoEventos.onCreate(ListadoEventos.java:31)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at android.app.Activity.performCreate(Activity.java:5008)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2035)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	... 11 more
09-27 00:17:17.850: E/AndroidRuntime(22131): Caused by: android.os.NetworkOnMainThreadException
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1126)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at java.net.InetAddress.getAllByName(InetAddress.java:214)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at libcore.net.http.HttpEngine.connect(HttpEngine.java:310)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at es.xxx.xxxx.SaxXML.getInputStream(SaxXML.java:57)
09-27 00:17:17.850: E/AndroidRuntime(22131): 	at es.xxx.xxxx.SaxXML.parseXML(SaxXML.java:43)
y no tengo manera de solucionarlo.


El error debe saltar en esta parte

Código:
try {
	 SAXParser parser = factory.newSAXParser();
	 LeerXml handler = new LeerXml();
	 parser.parse(this.getInputStream(), handler);
	 return handler.geteventos();
	 
	 } catch (Exception e) {
	 throw new RuntimeException(e);
	 }
	 }
gracias de antemano
Responder Con Cita


  #2  
Viejo 30/09/13, 17:28:16
Avatar de providez
providez providez no está en línea
Miembro del foro
Mensajes: 210
Compra y venta: (2)
 
Fecha de registro: may 2009
Mensajes: 210
Modelo de smartphone: Moto G / Motorola Xoom
Versión de ROM: Moto G Stock 4.4.2 / USA Stock 4.1.1
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Caused by: android.os.NetworkOnMainThreadException...

Estás intentando hacer operaciones de entrada/salida o red dentro del hilo principal. Prueba a utilizar un AsyncTask.
Responder Con Cita
  #3  
Viejo 09/10/13, 13:25:20
Avatar de berto1989
berto1989
Usuario invitado
Mensajes: n/a
 
Mensajes: n/a
Mencionado: comentarios
Tagged: hilos
siento no haber respondido antes.

Gracias por tu respuesta providez,

pero como tendria que meter en el asynctask el codigo¿?


Cita:

public ArrayList<ElementosXML> parseXML() {
SAXParserFactory factory = SAXParserFactory.newInstance();

try {
SAXParser parser = factory.newSAXParser();
LeerXml handler = new LeerXml();
parser.parse(this.getInputStream(), handler);
return handler.geteventos();

} catch (Exception e) {
throw new RuntimeException(e);
}
}



// Realiza el Stream del XML vía http
private InputStream getInputStream() {
try {
return rssUrl.openConnection().getInputStream();

} catch (IOException e) {
throw new RuntimeException(e);
}
}
esta es la parte del codigo, como haria?

gracias de antemano
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 13:01:28 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007