Autore Topic: Errore parser xml  (Letto 1486 volte)

Offline Max

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Ace
Errore parser xml
« il: 09 Ottobre 2012, 13:22:17 CEST »
0
Salve a tutti, mi succede una cosa strana lanciando la mia app su Eclipse dal pc di casa mi restituisce un errore mentre invece da lavoro fila via liscia. Debuggando ho visto che la riga incriminata è questa

doc=DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new URL(xmlUrl).openStream());

serve qualcosa nel pc di casa che non ho? a me sembra tutto ok

Codice (Java): [Seleziona]
10-09 11:24:26.513: E/Trace(946): error opening trace file: No such file or directory (2)
10-09 11:24:27.003: D/AndroidRuntime(946): Shutting down VM
10-09 11:24:27.003: W/dalvikvm(946): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
10-09 11:24:27.023: E/AndroidRuntime(946): FATAL EXCEPTION: main
10-09 11:24:27.023: E/AndroidRuntime(946): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.application.ppn/it.application.ppn.MainActivity}: android.os.NetworkOnMainThreadException
10-09 11:24:27.023: E/AndroidRuntime(946):      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
10-09 11:24:27.023: E/AndroidRuntime(946):      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
10-09 11:24:27.023: E/AndroidRuntime(946):      at android.app.ActivityThread.access$600(ActivityThread.java:130)
10-09 11:24:27.023: E/AndroidRuntime(946):      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
10-09 11:24:27.023: E/AndroidRuntime(946):      at android.os.Handler.dispatchMessage(Handler.java:99)
10-09 11:24:27.023: E/AndroidRuntime(946):      at android.os.Looper.loop(Looper.java:137)
10-09 11:24:27.023: E/AndroidRuntime(946):      at android.app.ActivityThread.main(ActivityThread.java:4745)
10-09 11:24:27.023: E/AndroidRuntime(946):      at java.lang.reflect.Method.invokeNative(Native Method)
10-09 11:24:27.023: E/AndroidRuntime(946):      at java.lang.reflect.Method.invoke(Method.java:511)
10-09 11:24:27.023: E/AndroidRuntime(946):      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-09 11:24:27.023: E/AndroidRuntime(946):      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-09 11:24:27.023: E/AndroidRuntime(946):      at dalvik.system.NativeStart.main(Native Method)
10-09 11:24:27.023: E/AndroidRuntime(946): Caused by: android.os.NetworkOnMainThreadException
10-09 11:24:27.023: E/AndroidRuntime(946):      at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
10-09 11:24:27.023: E/AndroidRuntime(946):      at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
10-09 11:24:27.023: E/AndroidRuntime(946):      at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
10-09 11:24:27.023: E/AndroidRuntime(946):      at java.net.InetAddress.getAllByName(InetAddress.java:214)
10-09 11:24:27.023: E/AndroidRuntime(946):      at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
10-09 11:24:27.023: E/AndroidRuntime(946):      at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
10-09 11:24:27.023: E/AndroidRuntime(946):      at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:341)
10-09 11:24:27.023: E/AndroidRuntime(946):      at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
10-09 11:24:27.023: E/AndroidRuntime(946):      at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
10-09 11:24:27.023: E/AndroidRuntime(946):      at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315)
10-09 11:24:27.023: E/AndroidRuntime(946):      at libcore.net.http.HttpEngine.connect(HttpEngine.java:310)
10-09 11:24:27.023: E/AndroidRuntime(946):      at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
10-09 11:24:27.023: E/AndroidRuntime(946):      at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
10-09 11:24:27.023: E/AndroidRuntime(946):      at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273)
10-09 11:24:27.023: E/AndroidRuntime(946):      at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
10-09 11:24:27.023: E/AndroidRuntime(946):      at java.net.URL.openStream(URL.java:462)
10-09 11:24:27.023: E/AndroidRuntime(946):      at it.application.ppn.rss.MyParser.parseXml(MyParser.java:43)
10-09 11:24:27.023: E/AndroidRuntime(946):      at it.application.ppn.MainActivity.onCreate(MainActivity.java:39)
10-09 11:24:27.023: E/AndroidRuntime(946):      at android.app.Activity.performCreate(Activity.java:5008)
10-09 11:24:27.023: E/AndroidRuntime(946):      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
10-09 11:24:27.023: E/AndroidRuntime(946):      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
10-09 11:24:27.023: E/AndroidRuntime(946):      ... 11 more
« Ultima modifica: 09 Ottobre 2012, 13:25:33 CEST da Max »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Errore parser xml
« Risposta #1 il: 09 Ottobre 2012, 13:48:56 CEST »
0
Citazione
10-09 11:24:27.023: E/AndroidRuntime(946): Caused by: android.os.NetworkOnMainThreadException

La ragione è che esegui accesso alla rete dal main thread invece che in un thread separato. Nelle passate versioni dell'ambiente di sviluppo passava, adesso viene segnalato come errore grave.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Max

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Ace
Re:Errore parser xml
« Risposta #2 il: 09 Ottobre 2012, 13:52:03 CEST »
0
grazie !!!!
« Ultima modifica: 09 Ottobre 2012, 14:01:22 CEST da Max »

Offline Max

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Ace
Re:Errore parser xml
« Risposta #3 il: 09 Ottobre 2012, 14:33:34 CEST »
0
Un asynctask andrebbe bene????? help me pls

« Ultima modifica: 09 Ottobre 2012, 17:01:37 CEST da Max »

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:Errore parser xml
« Risposta #4 il: 09 Ottobre 2012, 16:46:41 CEST »
0
si, secondo me è la soluzione migliore

Offline Max

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Ace
Re:Errore parser xml
« Risposta #5 il: 09 Ottobre 2012, 17:01:48 CEST »
0
Codice (Java): [Seleziona]
new Parser().execute();
esecuzione classe asynctask senza nessun parametro e qui penso ci sia l'errore perche deve ritornarmi un ArrayList<MyNote


Codice (Java): [Seleziona]
public final class Parser extends AsyncTask<Void,Void,ArrayList<MyNote>> {
       
                @Override
        protected ArrayList<MyNote> doInBackground(Void... params) {
               
                try {}
                                catch {}
                return parsedData;
        }

Qui l'Asynctask dove non ho i primi 2 parametri ma ho il terzo di result


Il risultato e' un activity vuota senza errore pero', ripeto il problema e'  che nel main thread non mi ritorna niente
« Ultima modifica: 09 Ottobre 2012, 17:03:19 CEST da Max »

Offline Max

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Ace
Re:Errore parser xml
« Risposta #6 il: 09 Ottobre 2012, 17:37:13 CEST »
0
La ragione è che esegui accesso alla rete dal main thread invece che in un thread separato. Nelle passate versioni dell'ambiente di sviluppo passava, adesso viene segnalato come errore grave.

puoi farmi un esempio di accesso alla rete tramite AsyncTask

grazie infinite

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Errore parser xml
« Risposta #7 il: 09 Ottobre 2012, 18:15:48 CEST »
0
puoi farmi un esempio di accesso alla rete tramite AsyncTask

In palese conflitto di interessi, ti linko il mio tutorial.  ;-)

[facile] HttpBookSearch: AsyncTask, HttpClient, XML parsing, ProgressDialog - Android Developers Italia
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Max

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Ace
Re:Errore parser xml
« Risposta #8 il: 09 Ottobre 2012, 20:04:03 CEST »
0
Codice (Java): [Seleziona]
task.execute(editIsbn.getText().toString());qui ti ritorna una stringa ma come faccio io con un arraylist?

Offline Max

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Ace
Re:Errore parser xml
« Risposta #9 il: 10 Ottobre 2012, 11:07:01 CEST »
0
ok risolto con

Codice (Java): [Seleziona]
                try {
                        Datidaxml = task.get();
                } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (ExecutionException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

Ora la domanda è (la mia ignoranza non ha limiti) perchè la riga di codice

Codice (Java): [Seleziona]
        Datidaxml = task.get();
 me la segna come errore se non metto il try e catch