1
我正在使用本機擴展的Android版Flex移動應用程序。我試圖在Java代碼中使用Retrofit,但是Retrofit調用失敗。在Flex移動應用程序中使用改造
我有以下接口定義:
public interface GitHubService {
@GET("/repos/{owner}/{repo}/contributors")
List<Contributor> contributors(
@Path("owner") String owner,
@Path("repo") String repo
);
}
然後,我必須在我的Java代碼中的適當位置調用的AsyncTask
。它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代碼,以便不使用註釋(任何註釋,而不僅僅是Retrofit)。 – Brian
如果其他人想要解決這個問題,我已經記錄了Adobe的一個錯誤:https://bugbase.adobe.com/index.cfm?event=bug&id=4071110 – Michael