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
. Что здесь происходит?
Ответы
Ответ 1
У вас есть два варианта:
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/ на наличие обновлений.
Ответ 2
В API версии 2 есть изменения. Вот как вы это делаете в этой версии:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com")
.build();
GitHubService service = retrofit.create(GitHubService.class);
Пожалуйста, обратитесь к нам за дополнительной информацией: Домашняя страница Retrofit 2
и эти слайды: Отладка 2 презентации
Ответ 3
Если вы хотите запустить свой код, вам нужно использовать более старую версию 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
Ответ 4
В 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 = 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