Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
293 views
in Technique[技术] by (71.8m points)

android - Retrofit error 2.0.2 beta error in Callback does not override abstract method onResponse(Response<JsonElement>)

    public class RetroFitClient
    {
    public static APIClass GetRetroFitClient()
        {
            return RETROFIT_API_CLASS;
        }

        public static void InitialiseRetroFitClient()
        {
            Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl(APP_BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();

            APIClass service = retrofit.create(APIClass.class);
        }

    }

public interface APIClass
{
    @POST("/zxx/")
    Call<JsonElement> GetClientAuthentication(String jArray);
}

    public void Call()
        {
            Call<JsonElement> call = RetroFitClient.GetRetroFitClient().GetClientAuthentication(my_content);
            call.enqueue(new Callback<JsonElement>() {
                @Override
                public void onResponse(Response<JsonElement> response, Retrofit retrofit) {
                    Log.d("onResponse" ,response.toString() );
                }

                @Override
                public void onFailure(Throwable throwable) {
                    throwable.printStackTrace();

                }
            });

        }

First one is my RetrofitClient class where retrofit is initializing. Second one is my APIClass containing the function declaration. Third one is the calling the function from my Activity .

But i am getting compile error of "is not abstract and does not override abstract method onResponse(Response<JsonElement>) in Callback" 

and "method does not override or implement a method from a supertype".

Can anybody help on this?
Thanks in advance.
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The RETROFIT_API_CLASS should be an interface, those methods are implemented automatically by the Retrofit framework, you shouldn't call them directly, that's the reason of your error.

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl(APP_BASE_URL)
    .addConverterFactory(GsonConverterFactory.create())
    .build();

APIClass service = retrofit.create(APIClass.class);

Call<YourParsedResponse> myCall = service.myCall();
myCall.enqueue(...)

Btw it may help this resource, a basic working project with a very simple http call with Retrofit 2

https://github.com/saulmm/Retrofit-2-basic-sample


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...