安卓端使用Apollo下载GraphQL schema及生成类失败求助
问题1:downloadApolloSchema 任务报URL scheme错误
- 该报错大多出现在Windows系统使用PowerShell执行命令的场景,原因是PowerShell对单引号的解析规则和cmd、bash不同,传入的
--endpoint参数会携带单引号被Apollo插件识别,导致无法正确解析URL格式。 - 解决方法二选一:
- 把命令里的单引号换成双引号,同时对内部参数用反引号转义:
gradlew :app:downloadApolloSchema --endpoint="`"https://countries.trevorblades.com/`"" --schema="`"app/src/main/graphql/com/trevorblades/countries/schema.json`""- 直接用系统自带的cmd终端执行原命令即可,无需修改参数格式。
问题2:generateApolloSources 任务报schema解析失败
- 常见原因和对应解决方法:
- 手动下载的schema格式不匹配:Apollo默认要求下载的instrospection结果为JSON格式,如果你从网页端下载的是SDL格式(后缀为.graphqls的文本格式),需要修改下载选项选择instrospection JSON格式,或者在build.gradle的apollo配置块里指定schema格式为SDL:
apollo { service("countries") { srcDir("src/main/graphql/com/trevorblades/countries") schemaFile.set(file("src/main/graphql/com/trevorblades/countries/schema.graphqls")) } }- 路径配置错误:检查schema文件的存放路径是否和你build.gradle里apollo插件配置的service路径完全匹配,不存在拼写错误、路径层级错误。
- 版本不兼容:确认你使用的Apollo Gradle插件版本和官方教程对应的版本一致,不同大版本之间的schema解析规则存在差异。
- 文件损坏:确认手动下载的schema.json内容完整,不存在截断、乱码、多余的HTML内容等问题,可以直接在文本编辑器打开检查是否是合法的JSON格式。
内容的提问来源于stack exchange,提问作者jack_the_beast
相关产品推荐
相关产品推荐

