java - 将 Retrofit 与 Flex Mobile 应用程序结合使用

标签 java android apache-flex air-native-extension retrofit

我正在开发带有 native 扩展的 Android Flex Mobile 应用程序。我尝试在 Java 代码中使用 Retrofit,但 Retrofit 调用失败。

我定义了以下接口(interface):

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

有没有办法让 Retrofit 在 Flex Mobile 的 native 扩展中工作?

最佳答案

目前这是不可能的。 ADT 在 dalvik 的编译过程中删除了 java 类中的所有注释。

关于java - 将 Retrofit 与 Flex Mobile 应用程序结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21637691/

相关文章:

java - 在 JSch 中使用连接池

java - 将字符串的一部分转换为 int 以从二进制转换为浮点 JAVA 的最佳方法

java - 获取 Android 设备的总内存

android - 如何修复此 CrashlyticsMissingDependencyException?

apache-flex - Adobe AIR 制作截图

apache-flex - Adobe Flex 组合框数据提供程序

java - 如何使用 jxl 逐张读取 excel 文件

android - 如何使视频全屏并保持纵横比?

apache-flex - Flex DataGridColumn id 丢失?

java - 元素无法滚动到 View 中(即使它就在那里)Selenium