How to fix 'main GraphQL source' error at code generation using Apollo?

半腔热情 提交于 2020-04-10 09:20:31

问题


I'm trying to connect Android app with GraphQL using Apollo code generation. I'm getting this type of error:

ERROR: Value 'main GraphQL source' specified for property '$1' cannot be converted to a file.

I made lot of tutorials on medium, used github instructions but none of them didn't help me. To generate schema.json I used apollo and also deprecated apollo-codegen.

Project-level gradle dependecies:

 dependencies {
     classpath 'com.android.tools.build:gradle:3.4.0'
     classpath 'com.apollographql.apollo:gradle-plugin:0.4.1'
 } 

On app-gradle I added one line:

apply plugin: 'com.apollographql.android'

I also created a folder 'graphql' in my main folder, and I put getPosts.graphql file:

query allPostsQuery{
    findAllUsers{
        username
        email
        }
    }

Then I'm generated schema.json using (a part with my query):

    {
      "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
    },

Schema-generation:

 apollo-codegen introspect-schema http://localhost:1100/graphql --output schema.json

回答1:


I tried what Sneha suggested, that's working fine for me.

If you don't want to downgrade Android Gradle plugin and Gradle version you can change

classpath 'com.apollographql.apollo:gradle-plugin:0.4.1'

to

classpath 'com.apollographql.apollo:apollo-gradle-plugin:1.0.0'

in your project level build.gradle file.

Also please update apollo-runtime and apollo android support library to latest version in your build.gradle file of app module.

implementation 'com.apollographql.apollo:apollo-runtime:1.0.0'
implementation "com.apollographql.apollo:apollo-android-support:1.0.0"

Hopefully this will resolve your issue, let me know if you've any issue further.




回答2:


In Project structure(File -> Project Structure -> Project) change your Gradle plugin version to 3.3.2 and Gradle version to 4.10.1.

if it still didn't work, change the Gradle versions to the older.

Hope it will works. Worked the same for me.



来源:https://stackoverflow.com/questions/56102339/how-to-fix-main-graphql-source-error-at-code-generation-using-apollo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!