Android集成Apollo GraphQL构建后无法生成apollo目录如何解决?
问题原因
- 核心原因1:仅存在
schema.graphql文件无法触发代码生成,Apollo GraphQL要求必须同时存在定义了实际业务查询(Query/Mutation)的.graphql文件,才会生成对应的模型类、操作类以及apollo目录。 - 核心原因2:
schema.graphql和查询文件存放路径不符合规范,未放到Apollo指定的目录结构下。 - 其他可能原因:构建时未触发Apollo代码生成任务,或者Gradle缓存导致任务未正常执行。
解决步骤
- 调整文件存放路径
在app模块的src/main/目录下创建graphql文件夹,再在graphql文件夹下创建和应用包名(你配置的applicationId为com.xxxx.xxxx,对应创建com/xxxx/xxxx层级目录)完全一致的目录结构,将schema.graphql文件放到该目录下。 - 新增业务查询文件
在上述相同目录下新建.graphql后缀的查询文件,例如需要查询大洲列表可新建ContinentQuery.graphql,写入查询内容示例:
query GetContinents { continents { code name } }
注:你提供的GraphQL端点配置JSON是JS GraphQL编辑器插件的配置文件,仅用于IDE语法提示,和Apollo Gradle插件的代码生成逻辑无关,不影响apollo目录生成。
- 手动触发代码生成任务
打开Android Studio的Terminal面板,执行对应系统的命令:
Windows系统:
gradlew.bat generateApolloSources
Mac/Linux系统:
./gradlew generateApolloSources
如果执行任务报错,可根据控制台输出的错误信息排查,查询语法错误、schema文件格式错误都会导致生成失败。
4. 验证生成结果
任务执行成功后,即可在app/build/generated/source/apollo/目录下看到生成的Kotlin模型代码,项目中可以直接引用生成的查询类。
内容的提问来源于stack exchange,提问作者Max90
相关产品推荐
相关产品推荐

