为何RetrofitAPI类报"Missing method body, or declare abstract"错误?
解决RetrofitAPI类的"Missing method body, or declare abstract"错误
这个错误的核心原因是你把Retrofit的API定义写成了普通class,但Java普通类中的方法必须要么实现方法体,要么声明为抽象方法(同时类也要声明为abstract)。而Retrofit的API规范要求这类定义必须是接口(interface)——因为Retrofit会通过动态代理机制自动生成这些方法的实现逻辑,不需要你手动编写方法体。
修正后的代码如下:
package com.example.rvj; import retrofit2.Call; import retrofit2.http.GET; import retrofit2.http.Url; public interface RetrofitAPI { @GET Call<NewsModal> getAllNews(@Url String url); @GET Call<NewsModal> getNewsByCategory(@Url String url); }
至于其他环境能正常运行的可能情况:大概率是其他环境中该类被正确定义为interface,或者配置了Retrofit相关的注解处理器且生效,编译器自动处理了方法实现的生成,而当前环境可能存在类定义写错、注解处理器未配置等问题。
内容的提问来源于stack exchange,提问作者Bhupendra28
相关产品推荐
相关产品推荐

