Как исправить ошибку «основного источника GraphQL» при генерации кода с использованием Apollo? - PullRequest
1 голос
/ 12 мая 2019

Я пытаюсь связать приложение Android с GraphQL с помощью генерации кода Apollo.Я получаю сообщение об ошибке такого типа:

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'
 } 

На app-gradle я добавил одну строку:

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

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Я попробовал то, что предложил Снеха, у меня это нормально работает.

Если вы не хотите понижать версию 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"

Надеюсь, это решит вашу проблему, дайте мне знать, если у вас возникнут какие-либо проблемы.

0 голосов
/ 22 мая 2019

В структуре проекта (Файл -> Структура проекта -> Проект) измените версию плагина Gradle на 3.3.2 и версию Gradle на 4.10.1.

, если она все еще не работает, измените Gradleверсии для более старых.

Надеюсь, что это будет работать.Работал так же для меня.

...