Apollo Android Client - Невозможно получить доступ к сгенерированным классам на пути к классам

Я успешно сгенерировал классы Apollo и вижу их в каталоге сборки, однако они не доступны в пути к классам. Как ни странно, генерируемый Enum доступен, но сами классы - нет.

Выполнение примера проекта, предоставленного на Github от Apollo, действительно работает, но я не вижу разницы между конфигурациями.

Макве ниже.

https://github.com/michaeljq/graphQlMCVE

3 ответа

Решение

Прямо сейчас у вас есть src/main/graphql/ содержащие документы GraphQL. Это означает, что ваши классы Java будут созданы без пакета Java, что, вероятно, не то, что вы хотите.

Вместо этого создайте дерево пакетов под src/main/graphql/ (например, src/main/graphql/apollotest/mq/apollotest/api/). Переместите документы GraphQL и schema.json там. Очистите проект, и вы должны обнаружить, что ваши сгенерированные Apollo классы доступны вам в любом выбранном вами Java-пакете (например, apollotest.mq.apollotest.api в приведенном выше примере).

Вот скриншот, чтобы быстрее понять решение: Структура проекта

В моем случае я забыл указать имя пакета на уровне приложения.build.gradleфайл

      apollo {
    // instruct the compiler to generate Kotlin models
    generateKotlinModels.set(true)
    packageNamesFromFilePaths("com.example.your_package_name")
}

После этого мне не нужно было создавать подпапки внутри.graphqlпапка.

Другие вопросы по тегам