如何在 Android Studio 中导入从 Apollo Client (GraphQL) 生成的 class

How to import generated class from Apollo Client (GraphQL) in Android Studio

我是 Android studio 的新手,想用 GraphQL 和 Apollo Client.

编写一个小示例应用程序

我已经成功设置了构建环境和自动代码生成。这是文件结构的屏幕截图,build/generated/apollo/AllPostsQuery 是根据 src/main/graphql/AllPosts.graphql:

自动生成的 class

我现在唯一的问题是我不知道如何将 AllPostsQuery class 导入我的 MainActivy.

我只是试了一下:

import AllPostsQuery; 

但这不起作用:

Can not resolve symbol AllPostsQuery.

导入路径需要加前缀吗?

你的项目在问题中的结构方式,你有你的 GraphQL 文档和模式 JSON 直接在 graphql/ 中。这将导致您生成的 Java class 不会被放入包中。这可能不是你想要的。

Apollo-Android 采用用于某些其他形式的源代码(Java、AIDL 等)的方法,并使用包目录树。在 this sample project (from this book) 中,我在 graphql/com/commonsware/graphql/trips/api 中有我的 GraphQL 文档和模式 JSON。结果,我生成的 Java classes 在 com.commonsware.graphql.trips.api 包中。

因此,为您希望生成的代码进入的任何 Java 包设置一系列子目录,并将您的 GraphQL 文档和架构 JSON 移到那里。