所以我正在尝试将Retrofit用于我的项目。正如该网站所说,我已经包括在内
compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
中的build.gradle
。我正在阅读这个link的教程。我想做类似这样的事情
final RestAdapter restadapter = new RestAdapter.Builder().setEndpoint("http://services.hanselandpetal.com").build();
api flowerapi = restadapter.create(api.class);
flowerapi.getData(new Callback<List<Flower>>() {
@Override
public void success(List<Flower> flowers, Response response) {
flowerList = flowers;
adapter adapt = new adapter(getApplicationContext(),R.layout.item_file,flowerList);
//ListView listView = (ListView) findViewById(R.id.list);
setListAdapter(adapt);
}
在我的项目中,即调用一些API。但是,restadapter并没有获得resolved
。在它上面悬停它只是说symbol can't be resolved
。这里发生了什么?
答案 0 :(得分:62)
您有两种选择:
这是您需要的RestAdapter
课程。
compile 'com.squareup.retrofit:retrofit:1.9.0'
RestAdapter
类已重命名为Retrofit
,API已完全重新制作。阅读Jake Wharton's presentation中的更多内容。
compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
截至2016年6月30日,最新版本为2.1.0
compile 'com.squareup.retrofit2:retrofit:2.1.0'
请检查http://square.github.io/retrofit/以获取更新。
答案 1 :(得分:29)
版本2中的API发生了变化。这是您在此版本中的操作方式:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com")
.build();
GitHubService service = retrofit.create(GitHubService.class);
有关详细信息,请参阅此处:Retrofit 2 home page
以及这些幻灯片:Retrofit 2 presentation
答案 2 :(得分:8)
如果您想运行代码,则需要使用旧版本的Retrofit。
compile 'com.squareup.retrofit:retrofit:1.9.0'
但你正在使用
compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
所以你需要改变这样的代码。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com")
.build();`
有关完整文档,请查看RetroFit square
答案 3 :(得分:0)
在Retrofit 2.0中,转换器不再包含在包中。您需要自己插入转换器,否则Retrofit将只能接受String结果。因此,Retrofit 2.0不再依赖于Gson了。
如果您想接受json结果并将其解析为DAO,则必须将Gson Converter作为单独的依赖项召唤。
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
通过addConverterFactory插入它。请注意,RestAdapter现在也重命名为Retrofit。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://api.nuuneoi.com/base/")
.addConverterFactory(GsonConverterFactory.create())
.build();
service = retrofit.create(APIService.class);