Я работаю над мобильным приложением Flex для Android с родным расширением. Я пытаюсь использовать Retrofit в коде Java, но вызовы Retrofit не работают.Использование Retrofit с мобильным мобильным приложением
Я следующий интерфейс определен:
public interface GitHubService {
@GET("/repos/{owner}/{repo}/contributors")
List<Contributor> contributors(
@Path("owner") String owner,
@Path("repo") String repo
);
}
Тогда у меня AsyncTask
вызывается из соответствующей точки в моей Java-кода. Его doInBackground
метод выглядит следующим образом:
@Override
protected String doInBackground(String... arg0) {
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
.registerTypeAdapter(Date.class, new DateTypeAdapter())
.create();
RestAdapter restAdapter = new RestAdapter.Builder().setServer("https://api.github.com")
.setConverter(new GsonConverter(gson))
.build();
GitHubService service = restAdapter.create(GitHubService.class);
List<Contributor> contributors = service.contributors("square", "okhttp");
for (Contributor contributor : contributors) {
Log.d("FooTask", contributor.login + " - " + contributor.contributions);
}
return null;
}
Из всего этого, я ожидал увидеть список напечатанный в LogCat; вместо этого я получаю следующее исключение:
FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
...
Caused by: java.lang.IllegalStateException: No Retrofit annotation found on parameter 1 of contributors
Есть ли способ сделать переоснащение внутри собственного расширения с помощью Flex Mobile?
Привет, вы решили эту проблему? потому что я столкнулся с тем же? – ShahrozKhan91
Единственное решение, которое я смог найти, это переписать код Java, чтобы не использовать аннотации (любые аннотации, а не только «Дооснащение»). – Brian
Если кто-то еще хочет решить эту проблему, я зарегистрировал ошибку с Adobe: https://bugbase.adobe.com/index.cfm?event=bug&id=4071110 – Michael