2016-01-03 18 views
19

Sto cercando di fare una richiesta JSONObject:Android Studio: errore: carattere non valido: ' u2028'

final String URL = "https://some/url"; 

// Post params to be sent to the server 
HashMap<String, String> params = new HashMap<String, String>(); 
params.put("param1", param1); 

params.put("param2", param2); 

params.put("param3", param3);
  
params.put("param4", param4); 


JsonObjectRequest req = new JsonObjectRequest(URL, new JSONObject(params), new Response.Listener<JSONObject>() { 
    @Override 
    public void onResponse(JSONObject response) { 
     try { 
      VolleyLog.v("Response:%n %s", "läuft"); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 
}, new Response.ErrorListener() { 
    @Override 
    public void onErrorResponse(VolleyError error) { 
     VolleyLog.e("Error: ", error.getMessage()); 
    } 
}); 

// add the request object to the queue to be executed 
NetworkController.getInstance().addToRequestQueue(req); 

non riesco a compilare il progetto perché ricevo un errore di sintassi per i params:

Error:(144, 9) error: illegal character: '\u2028'

Come posso risolvere il problema?

+0

Rimuovere questo personaggio? – SLaks

+0

Ho osservato il carattere: u2028 significa separatore di riga. Non ho un separatore di linee nei miei parametri – jublikon

+0

Elimina quel carattere in quella posizione e digita di nuovo. – SLaks

risposta

7

Bene, è sufficiente eliminare tutti i caratteri e riscriverli nuovamente. Così pazzo ..

+0

questo commento mi ha fatto ridere, ma ha risolto il mio problema. –

1

Ho affrontato lo stesso identico problema ma nel mio caso il numero di errori era piuttosto grande (circa 95). L'unica cosa sensata da fare era sostituire questi personaggi con un personaggio vuoto. Questo breve script Python lo farebbe e stamperà i nuovi contenuti per il tuo file. Eseguilo con il percorso corretto per il tuo file. Saluti.

with open(‘filename.java’, ‘r’) as file: 
    data=(file.read().decode(“utf-8”)).replace(u’\u2028', ‘’).encode(“utf-8”) 
    print data 
29

E 'il carattere di nuova riga, se si va a ciascuna delle linee che stanno causando l'errore e cancellare la 'invisibile' ultimo carattere poi gli errori si risolveranno

Vai alla fine della riga che sta causando l'errore e ha colpito backspace una volta, per ciascuna delle righe che hanno l'errore di carattere illegale.

+0

Questo ha funzionato. Ho dovuto colpire backspace un paio di volte su alcune delle linee però. – moyheen

+0

Crazy Android Studio, la fine della linea java premendo delete funziona bene, ma per alcune linee, devi spostare il cursore all'inizio della linea e spostarti nuovamente alla fine della riga e quindi premere cancella per rimuovere/u2028 errore di carattere. irritato. ma qual è la ragione di questo? –

3

Taglia e incolla il codice in un editor di testo per convertirlo in testo semplice. Quindi rimuovi tutti gli spazi extra. Dopodiché, utilizza la funzione Riformatta codice di Android Studio per renderla di nuovo piacevole.

Per me, solo la cancellazione degli spazi in Android Studio non ha funzionato.

13

Se sei mac utente quindi si può

Copiare e incollare testo in TextWrangler Visualizza -> visualizzazione del testo -> Mostra Invisibili

che vi mostrerà come simbolo "|". Elimina questo e sei a posto.

+0

finalmente questo ha funzionato per me ... grazie a un gruppo –

+0

cercato un'ora per questa risposta.grazie mille :) – BMU

+0

questo ha funzionato anche per me –

3

migliore è quello di utilizzare la sostituzione del testo da Android Studio, mettere una stringa vuota in "Sostituire con":

Android studio replace

+1

Assicurati di aver controllato Regex e questo funziona come un incantesimo! – Groovee60

Problemi correlati