首页 > 解决方案 > Apollo Android - 无法解析 GraphQL 文件。未知变量类型

问题描述

我的 apollo 任务之一出现编译错误,因为 Android Studio 尝试根据给定模式生成类。

我在我的解决方案中引用了两个服务/端点:公共和私有。它们在我的 app/gradle.build 中定义如下:

apollo {
    graphqlSourceDirectorySet.srcDirs += "./src/main/graphql"

    service("private") {
        sourceFolder = "./com/myapp/privateGQL"
        schemaPath = "./com/myapp/privateGQL/schema.json"
    }
    service("public") {
        sourceFolder = "./com/myapp/publicGQL"
        schemaPath = "./com/myapp/publicGQL/schema.json"
    }

    generateKotlinModels = true
    customTypeMapping = [
        "URL" : "java.lang.String",
        "Date" : "java.util.Date"
    ]
}

在 privateGQL 目录中,我有一个查询 GetBusinessQuery.graphql。

在 publicGQL 目录中,我有一个突变 TokenGetOrCreate.graphql,它有一个自定义输入参数 TokenGetOrCreateInput。

问题是“generateDebugPrivateApolloSources”,失败并出现以下错误:

无法解析 GraphQL 文件。未知变量类型“TokenGetOrCreateInput!”

TokenGetOrCreateInput 类型是在 publicGQL/schema.json 中定义的,但由于某种原因,“私有”任务集也需要这种类型的定义,当然,privateGQL/schema.json 不包含该类型。

如何将 publicGQL/*.graphql 文件排除在私有服务的编译任务中,反之亦然?

标签: androidgraphqlapolloapollo-android

解决方案


推荐阅读