2014-02-07 4 views
1

Я работаю над мобильным приложением 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?

+0

Привет, вы решили эту проблему? потому что я столкнулся с тем же? – ShahrozKhan91

+0

Единственное решение, которое я смог найти, это переписать код Java, чтобы не использовать аннотации (любые аннотации, а не только «Дооснащение»). – Brian

+0

Если кто-то еще хочет решить эту проблему, я зарегистрировал ошибку с Adobe: https://bugbase.adobe.com/index.cfm?event=bug&id=4071110 – Michael

ответ

0

В настоящее время это невозможно. ADT удаляет все аннотации из классов java в процессе компиляции для dalvik.