我正在尝试使用本教程进行Retrofit2 Getting Started and Create an Android Client。
进口很好
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3'
除了一件事,我可以很好地遵循教程。我正在尝试创建GitHubService Interface
并遇到两个问题:Call<V>
表示它不接受任何类型参数,我也不确定将Contributor
类置于何处根据教程仅宣称为static
,这是否意味着它嵌套在某处?
import okhttp3.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;
public interface GitHubClient {
@GET("/repos/{owner}/{repo}/contributors")
Call<List<Contributor>> contributors(
@Path("owner") String owner,
@Path("repo") String repo
);
}
static class Contributor {
String login;
int contributions;
}
我将Contributor类放在一个单独的文件中并将其公之于众。 此外,Call类不会在Android Studio中自动导入,我必须手动选择它,但它是我收到的唯一一个Call(Androids phone api除外)
请帮助我解释为什么我会收到这些错误,从我看到的情况来看,周围没有任何人都有同样的错误,所以我错过了一些基本的错误。
答案 0 :(得分:12)
根据编译时错误,您从错误的包中导入Call
。请检查您的导入并确保您有
import retrofit2.Call;
所有与Retrofit相关的导入应该来自包retrofit2
。
另一方面
Call contributors(
它无法猜出你想要归来的东西。一个Contributor
?可能是List<Contributor>
? E.g。
public interface GitHubClient {
@GET("/repos/{owner}/{repo}/contributors")
Call<List<Contributor>> contributors(
@Path("owner") String owner,
@Path("repo") String repo
);
}