RestAdapter(改装)没有在android中解析

时间:2015-09-06 13:38:04

标签: android retrofit

所以我正在尝试将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。这里发生了什么?

4 个答案:

答案 0 :(得分:62)

您有两种选择:

1)使用稳定的Retrofit 1

这是您需要的RestAdapter课程。

compile 'com.squareup.retrofit:retrofit:1.9.0'

2)迁移到Retrofit 2

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

更多信息:https://inthecheesefactory.com/blog/retrofit-2.0/en