2015-03-17 10 views
9

sto usando mcxiaoke/android-volley library.Im errore di compilazione ottenendo comeErrore Compililation durante l'utilizzo JsonObjectRequest

Error:(77, 37) error: reference to JsonObjectRequest is ambiguous, both constructor 
JsonObjectRequest(int,String,String,Listener<JSONObject>,ErrorListener) in JsonObjectRequest and constructor 
JsonObjectRequest(int,String,JSONObject,Listener<JSONObject>,ErrorListener) in JsonObjectRequest match 

questo è il mio code.I non sanno che cosa è sbagliato. Qualsiasi aiuto apprezzato

JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, 
      getRequestUrl(10), 
      null, 
      new Response.Listener<JSONObject>() { 
     @Override 
     public void onResponse(JSONObject response) { 


     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 

     } 
    }); 
+1

si passa un valore nullo, passare una stringa o un JSONObject –

+0

penso valore nullo viene accettato. – Harish

+3

sì null è accettato ma il dosent sa sapere quale costruttore stai chiamando. cast il null alla stringa –

risposta

28

Eseguire il cast da null a stringa o JSONObject e dovrebbe funzionare correttamente penso.

new JsonObjectRequest(Request.Method.GET, 
      getRequestUrl(10), 
      (String)null, 
      new Response.Listener<JSONObject>() 
+2

passando solo 'null' funziona in eclissi ma su android studio ho ricevuto quell'errore e la tua soluzione risolve il mio problema grazie :) –

+0

Risposta stupenda !! Ho perso quasi 1 ore cercando di capire quale fosse il problema –

2

Bill Gates ha ragione, non c'è modo per quella classe di sapere che il costruttore da utilizzare se si passa nel nulla anziché l'oggetto di tipo String o JSONObject si aspetta in uno dei costruttori altrimenti si ottieni questo errore ambiguo, dicendo che il costruttore ha 2 corrispondenze.

Prova:

JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, 
     getRequestUrl(10), 
     "", 
     new Response.Listener<JSONObject>() { 
    @Override 
    public void onResponse(JSONObject response) { 


    } 
}, new Response.ErrorListener() { 
    @Override 
    public void onErrorResponse(VolleyError error) { 

    } 
}); 
0

hai appena usato riferimento null.

new JsonObjectRequest(Request.Method.GET, 
     getRequestUrl(10), 
     (String)null, 
     new Response.Listener<JSONObject>() 

il suo lavoro per me