Tengo algunos problemas con mi emulador de Android 3.1. Yo no puedo conseguir que mi archivo XML.

protected InputStream getInputStream() {
    try {

        return feedUrl.openConnection().getInputStream();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

Aquí está el error de seguimiento:

08-07 22:34:26.657: ERROR/AndroidRuntime(563): Caused by: android.os.NetworkOnMainThreadException
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1077)
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at java.net.InetAddress.lookupHostByName(InetAddress.java:477)
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:277)
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at java.net.InetAddress.getAllByName(InetAddress.java:249)
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:69)
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48)
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:304)
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89)
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:292)
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:274)
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.retrieveResponse(HttpURLConnectionImpl.java:1038)
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:523)
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at maps.test.BaseFeedParser.getInputStream(BaseFeedParser.java:30)
08-07 22:34:26.657: ERROR/AndroidRuntime(563):     at maps.test.DomFeedParser.parse(DomFeedParser.java:23)

Creo que no se puede conectar a Internet , incluso con <uses-permission android:name="android.permission.INTERNET"/>. Pero en el mismo tiempo, la API de Google está trabajando muy bien.

5 Comentarios

  1. 53

    Causada por: android.os.NetworkOnMainThreadException

    En nido de abeja que he ido y poner en una trampa para capturar a la gente tratando de hacer potencialmente consumidora de tiempo de las operaciones de red en el hilo principal.

    De: http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html

    La excepción que se produce cuando una aplicación intenta realizar una operación de red en su hilo principal.

    Este es lanzado para las aplicaciones de la orientación de la SDK de Honeycomb o superior. Aplicaciones de la orientación de anteriores versiones de SDK permite hacer networking en sus principales bucle de eventos de los hilos, pero fuertemente desaconsejado. Consulte el documento El diseño de la capacidad de Respuesta.

    Ver también StrictMode.

    (Por favor, tenga en cuenta que usted puede tener al instante encontrado esta usted haciendo una búsqueda en la web sobre la excepción en la parte superior de los mensajes de error que has publicado.)

    Porque las cosas como buscar un nombre de host puede tomar un largo y un poco periodo de tiempo indeterminado, que no debe ser llamada desde el evento de las funciones en el hilo principal que se requiere para volver rápidamente (como en dentro de unos pocos milisegundos). Si una de estas funciones de toma demasiado tiempo para volver, Android pierde la capacidad de enviar mensajes al programa, y puede aparecer la temida Aplicación No Responde de diálogo.

    Debe mover su red de operaciones (al menos ninguna que requieren la espera de un resultado o de una obstrucción a claro para que pueda enviar más) a un hilo. Si las operaciones de red que proviene de un trozo de código de la API, usted probablemente no debería estar llamando a que en el hilo principal.

    • estoy recibiendo el mismo error, pero yo tengo mi http trabajo en un hilo separado decir, async tarea. lo que pudo haber salido mal? podría usted por favor me orienten en esto?
    • Usted probablemente no se utiliza async tarea correctamente, y no poner todas las operaciones de la red en el fondo método, o de lo contrario se llama el fondo método desde el subproceso de interfaz de usuario en lugar de comenzar la tarea asíncrona. Al examinar el seguimiento de la pila usted se enterará de cuáles.
    • he comprobado a fondo, la llamada http es llamado en el doInBackground() método que es llamado desde el .execute() comando, siendo el flujo de retornos: org.apache.har[email protected]405259f0
  2. 15

    Uso de Async Tarea o

    if (android.os.Build.VERSION.SDK_INT > 9) 
    {
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
    }
    • Este es un gran consejo para todos los tipos de evaluación rápida. Usted no tiene que perder el tiempo con hilo/async detalles. Thx!
  3. 4

    ¿Tienes

    <uses-permission android:name="android.permission.INTERNET" />

    en su Manifiesto de Android? Debe ser por encima de su application etiqueta

    • Yo ya lo agregue, No hay que olvidar que dije de la API de google funciona muy bien.
    • pero creo que la API de Google puede trabajar sin estar conectado? beceause MyLocationOverlay no funcionan! pero me puede acceder al mapa y añadir estática de Superposición </aplicación> <uses-permission android:name=»android.el permiso.INTERNET»/> </manifest>
    • Trate de mover la utiliza-permiso etiqueta sobre la aplicación de la etiqueta, por lo que es <mainfest … > <uses-permission android:name=»android.el permiso.INTERNET» /> <aplicación … >
    • mismo como la otra respuesta, Chris Stratton tengo derecho, a su solo porque de red NetworkOnMainThreadException
  4. 3

    Esta excepción sólo es arrojado por las aplicaciones de la orientación de la SDK de Honeycomb o superior.
    usted puede ser dirigido a su sdk de igual o superior nivel de api 11. Cambie a la api de nivel 8 o de otras api de nivel inferior 11. su problema puede ser resuelto

    Aquí es el mismo problema, se habían resuelto por el cambio a nivel de api.

    Espero te sirva de ayuda.!!

    • la orientación de la api por debajo de 11 no funciona.
    • En realidad, la manera en que yo entendí, esta excepción es lanzada con el propósito de prevenir el consumo de tiempo de las operaciones de red en el hilo principal. Así que el problema no es la API de él de orientación, pero de la manera en que maneja las operaciones de la red 😉
  5. 0

    Quitar el android:targetSdkVersion»versión» de su AndroidManifest.xml

    Me lo quitaron y mi problema resuelto

Dejar respuesta

Please enter your comment!
Please enter your name here