Compililation Error while using JsonObjectRequest

2019-03-13 08:43发布

I'm using mcxiaoke/android-volley library.Im getting compilation error as

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

this is my code.I dont know what is wrong. Any help appreciated

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) {

        }
    });

3条回答
太酷不给撩
2楼-- · 2019-03-13 09:09

You just used null reference.

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

its work for me

查看更多
欢心
3楼-- · 2019-03-13 09:14

Cast the null to string or JSONObject and it should work fine i think.

new JsonObjectRequest(Request.Method.GET,
            getRequestUrl(10),
            (String)null,
            new Response.Listener<JSONObject>()
查看更多
SAY GOODBYE
4楼-- · 2019-03-13 09:16

Bill Gates is right, there is no way for that class to know which constructor to use if you pass in null instead of the Object of type String or JSONObject it is expecting in one of the constructors otherwise you will get this ambiguous error, saying that the constructor has 2 matches.

Try:

 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) {

    }
});
查看更多
登录 后发表回答