我正在尝试使用Apollo代码生成将Android应用程序与GraphQL连接。我遇到这种错误:
ERROR: Value 'main GraphQL source' specified for property '$1' cannot be converted to a file.
我在中等水平上做了很多教程,使用了github指令,但是没有一个对我有帮助。为了生成schema.json,我使用了apollo,同时也弃用了apollo-codegen。
项目级gradle依赖项:
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
classpath 'com.apollographql.apollo:gradle-plugin:0.4.1'
}
在应用程序等级上,我添加了一行:
apply plugin: 'com.apollographql.android'
我还在主文件夹中创建了一个文件夹'graphql',然后将getPosts.graphql文件放入其中:
query allPostsQuery{
findAllUsers{
username
email
}
}
然后我使用(查询的一部分)生成schema.json:
{
"kind": "OBJECT",
"name": "Query",
"description": "",
"fields": [
{
"name": "findAllUsers",
"description": "",
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "User",
"ofType": null
}
}
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "findUser",
"description": "",
"args": [
{
"name": "username",
"description": "",
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "String",
"ofType": null
}
},
"defaultValue": null
}
],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "User",
"ofType": null
}
},
"isDeprecated": false,
"deprecationReason": null
}
],
"inputFields": null,
"interfaces": [],
"enumValues": null,
"possibleTypes": null
},
模式生成:
apollo-codegen introspect-schema http://localhost:1100/graphql --output schema.json
答案 0 :(得分:0)
在项目结构(文件->项目结构->项目)中,将Gradle插件版本更改为3.3.2,将Gradle版本更改为4.10.1。
如果仍然无法正常运行,请将Gradle版本更改为旧版本。
希望它会起作用。对我来说也一样。
答案 1 :(得分:0)
我尝试了Sneha的建议,对我来说很好。
如果您不想降级Android Gradle plugin
和Gradle
版本,可以更改
classpath 'com.apollographql.apollo:gradle-plugin:0.4.1'
到
classpath 'com.apollographql.apollo:apollo-gradle-plugin:1.0.0'
在项目级别build.gradle
文件中。
还请在您的应用模块的apollo-runtime
文件中将apollo android support library
和build.gradle
更新为最新版本。
implementation 'com.apollographql.apollo:apollo-runtime:1.0.0'
implementation "com.apollographql.apollo:apollo-android-support:1.0.0"
希望这能解决您的问题,如果您还有其他问题,请告诉我。