RestAdapter (модификация) не разрешается в Android

Поэтому я пытаюсь использовать Retrofit для своего проекта. Как говорится на сайте, я включил compile 'com.squareup.retrofit:retrofit:2.0.0-beta1' в build.gradle. Я читал руководства по этой ссылке . Я хочу сделать что-то подобное, как это

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. Но реадаптер просто не получает resolved. При наведении на него просто написано symbol can't be resolved. Что здесь происходит ?


person abkds    schedule 06.09.2015    source источник


Ответы (4)


У вас есть два варианта:

1) Используйте стабильную модификацию 1

Это класс RestAdapter, который вам нужен.

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

2) Переход на дооснащение 2

Класс RestAdapter был переименован в Retrofit и полностью переделан API. Подробнее читайте в презентации Джейка Уортона.

compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'

По состоянию на 30 июня 2016 г. последней версией является 2.1.0, полученная

compile 'com.squareup.retrofit2:retrofit:2.1.0'

Пожалуйста, проверьте http://square.github.io/retrofit/ наличие обновлений.

person Eugen Pechanec    schedule 06.09.2015

В версии 2 есть изменения в API. Вот как вы это делаете в этой версии:

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://api.github.com")
    .build();

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

Дополнительную информацию см. здесь: домашняя страница Retrofit 2

и эти слайды: презентация "Модернизация 2"

person Ashkan Sarlak    schedule 06.09.2015

Если вы хотите запустить свой код, вам нужно использовать более старую версию 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.

person kundan roy    schedule 20.10.2015

В 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

person BinqiangSun    schedule 18.08.2016