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

Respuesta
 
Herramientas
  #1  
Viejo 27/09/13, 00:21:45
Array

[xs_avatar]
berto1989
Usuario invitado
 
Mensajes: n/a

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
Array

[xs_avatar]
providez providez no está en línea
Miembro del foro
· Votos compra/venta: (2)
 
Fecha de registro: may 2009
Mensajes: 210
Modelo de smartphone: Moto G / Motorola Xoom
Tu operador: Pepephone
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
Array

[xs_avatar]
berto1989
Usuario invitado
 
Mensajes: n/a

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   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 23:13:52 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /