如何在 Android Studio 中从 Apollo Client (GraphQL) 导入生成的类
Posted
技术标签:
【中文标题】如何在 Android Studio 中从 Apollo Client (GraphQL) 导入生成的类【英文标题】:How to import generated class from Apollo Client (GraphQL) in Android Studio 【发布时间】:2018-04-06 13:32:40 【问题描述】:我是 android Studio 的新手,想用 GraphQL 和 Apollo Client 编写一个小示例应用程序。
我已成功设置构建环境和自动代码生成。这是文件结构的截图,build/generated/apollo/AllPostsQuery
是基于src/main/graphql/AllPosts.graphql
自动生成的类:
我现在唯一的问题是我不知道如何将AllPostsQuery
类导入我的MainActivy
。
我只是尝试过:
import AllPostsQuery;
但这不起作用:
无法解析符号
AllPostsQuery
。
我需要在导入路径中添加任何前缀吗?
【问题讨论】:
看这里如何让AS为你自动导入类***.com/questions/22272524/… 感谢您的评论!我相信我的自动导入已经设置好了,它确实适用于所有其他类(到目前为止,我自己没有编写一个导入)。 imgur.com/VcVFXp4还有其他想法吗? 你应该在graphql/
下建立一个包目录树。生成的代码将进入该包。见this sample project。
啊,太棒了@CommonsWare!如果您将此添加为实际答案,我会将其标记为已接受,您将获得积分:)
您能否解决 ANDROID_HOME 问题?
【参考方案1】:
您的项目在问题中的结构方式是,您的 GraphQL 文档和模式 JSON 直接位于 graphql/
中。这将导致您生成的 Java 类不被放入包中。这可能不是你想要的。
Apollo-Android 采用用于某些其他形式的源代码(Java、AIDL 等)的方法,并使用包目录树。在this sample project(来自this book)中,我在graphql/com/commonsware/graphql/trips/api
中有我的GraphQL 文档和模式JSON。因此,我生成的 Java 类位于 com.commonsware.graphql.trips.api
包中。
因此,为您希望生成的代码进入的任何 Java 包设置一系列子目录,并将 GraphQL 文档和模式 JSON 移动到那里。
【讨论】:
以上是关于如何在 Android Studio 中从 Apollo Client (GraphQL) 导入生成的类的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android Studio 中从 Firebase 中查找特定值的计数?
如何在android studio中从0.000000、0.000001、......格式连续增加数字
如何在 Android Studio 中从 Apollo Client (GraphQL) 导入生成的类
如何使用firebase在android studio中从一个用户向另一个用户发送通知[重复]