Autore Topic: android JSONException in Aynctask  (Letto 633 volte)

Offline gbu123

  • Utente junior
  • **
  • Post: 74
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    windows 7
android JSONException in Aynctask
« il: 21 Dicembre 2012, 14:57:02 CET »
0
ciao ( e buon natale a tutti)

nella mia MainActivity ho questo codice :

Codice: [Seleziona]
    // json data 1
    Task1 ts1 = new Task1(MainActivity.this);
    ts1.execute();
           
    // json data 2
    Task2 ts2 = new Task2(MainActivity.this);
    ts2.execute();
   
dove ts1 e ts2 chiamano un  webservice per i dati json ; col debug ho verificato che entrambi trovano i dati ,
ma succede questo :

-dopo ts1 , quando parte ts2 , ricevo questi messaggi :

org.json.JSONException: End of input at character 0 of
at org.json.JSONTokener.syntaxError(JSONTokener.java:450)
at org.json.JSONTokener.nextValue(JSONTokener.java:97)
at org.json.JSONObject.<init>(JSONObject.java:154)
at org.json.JSONObject.<init>(JSONObject.java:171)
. . . .

e MainActivity riceve i dati json dall'Asynctask  ts1 , mentre ts2 no (la stringa restituita è vuota);

perchè ?
thanks
 

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:android JSONException in Aynctask
« Risposta #1 il: 21 Dicembre 2012, 15:06:46 CET »
0
Dovresti postare il logcat completo, cosi vediamo qual'è il punto preciso del codice in cui dà errore  ;-)
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

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:android JSONException in Aynctask
« Risposta #2 il: 21 Dicembre 2012, 15:12:53 CET »
+1
Senza scendere nel merito del codice, di cui si vede molto poco, una possibilità è che la libreria che usi per gestire il JSON non sia thread-safe. Per thread-safe si intende una libreria richiamabile da due o più thread contemporaneamente senza che ci sia interferenza: pare ovvio desiderare una cosa del genere, ma non è scontato che tutte le librerie lo siano.

EDIT: mi sono incuriosito ed ho cercato sulla documentazione ufficiale.
JSONObject | Android Developers

Citazione
Instances of this class are not thread safe. Although this class is nonfinal, it was not designed for inheritance and should not be subclassed. In particular, self-use by overrideable methods is not specified. See Effective Java Item 17, "Design and Document or inheritance or else prohibit it" for further information.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline gbu123

  • Utente junior
  • **
  • Post: 74
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    windows 7
Re:android JSONException in Aynctask
« Risposta #3 il: 21 Dicembre 2012, 15:22:06 CET »
0
ecco le segnalazioni del log :

12-21 12:57:23.919: D/dalvikvm(18826): threadid=13: still suspended after undo (sc=1 dc=1)
12-21 12:57:24.044: W/System.err(18826): org.json.JSONException: End of input at character 0 of
12-21 12:57:24.051: W/System.err(18826):    at org.json.JSONTokener.syntaxError(JSONTokener.java:450)
12-21 12:57:24.051: W/System.err(18826):    at org.json.JSONTokener.nextValue(JSONTokener.java:97)
12-21 12:57:24.051: W/System.err(18826):    at org.json.JSONObject.<init>(JSONObject.java:154)
12-21 12:57:24.051: W/System.err(18826):    at org.json.JSONObject.<init>(JSONObject.java:171)
12-21 12:57:24.051: W/System.err(18826):    at com.myovatta.activities.MainActivity$preparaGlobalVariables.prepara_listCitta(MainActivity.java:387)
12-21 12:57:24.051: W/System.err(18826):    at com.myovatta.activities.MainActivity$preparaGlobalVariables.<init>(MainActivity.java:358)
12-21 12:57:24.059: W/System.err(18826):    at com.myovatta.activities.MainActivity$Task1.onPostExecute(MainActivity.java:131)
12-21 12:57:24.059: W/System.err(18826):    at com.myovatta.activities.MainActivity$Task1.onPostExecute(MainActivity.java:1)
12-21 12:57:24.059: W/System.err(18826):    at android.os.AsyncTask.finish(AsyncTask.java:602)
12-21 12:57:24.059: W/System.err(18826):    at android.os.AsyncTask.access$600(AsyncTask.java:156)
12-21 12:57:24.059: W/System.err(18826):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
12-21 12:57:24.059: W/System.err(18826):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-21 12:57:24.059: W/System.err(18826):    at android.os.Looper.loop(Looper.java:137)
12-21 12:57:24.067: W/System.err(18826):    at android.app.ActivityThread.main(ActivityThread.java:4514)
12-21 12:57:24.067: W/System.err(18826):    at java.lang.reflect.Method.invokeNative(Native Method)
12-21 12:57:24.067: W/System.err(18826):    at java.lang.reflect.Method.invoke(Method.java:511)
12-21 12:57:24.067: W/System.err(18826):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
12-21 12:57:24.067: W/System.err(18826):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
12-21 12:57:24.067: W/System.err(18826):    at dalvik.system.NativeStart.main(Native Method)
12-21 12:57:24.091: D/dalvikvm(18826): threadid=13: still suspended after undo (sc=1 dc=1)
12-21 12:57:24.184: D/dalvikvm(18826): threadid=13: still suspended after undo (sc=1 dc=1)

fino al rigo delle 12-21 12:57:24.067:  le segnalazioni sono in arancio ;

verifico il disocrso del multithreading

grazie , ciao

Offline theBaffo

  • Utente normale
  • ***
  • Post: 164
  • Respect: +24
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8.1
Re:android JSONException in Aynctask
« Risposta #4 il: 21 Dicembre 2012, 15:35:32 CET »
0
cosa c'è alla riga 387 della MainActivity di preciso?  ;-)
Se ti sono stato utile, premi "thanks" ;)

"Errare è umano, ma per incasinare davvero tutto è necessario un computer" - Arthur Bloch

Offline gbu123

  • Utente junior
  • **
  • Post: 74
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    windows 7
Re:android JSONException in Aynctask
« Risposta #5 il: 21 Dicembre 2012, 15:37:21 CET »
0
         catch (Exception e) {
            e.printStackTrace();
         }

ciao