2017-10-25 1 views
1

Ich bin neu in Android Studio und möchte eine kleine Beispielanwendung mit GraphQL und Apollo Client schreiben.So importieren Sie eine generierte Klasse von Apollo Client (GraphQL) in Android Studio

Ich habe meine Build-Umgebung und die automatische Code-Generierung erfolgreich eingerichtet. Hier ist ein Screenshot der Dateistruktur ist build/generated/apollo/AllPostsQuery die Klasse, die basierend auf src/main/graphql/AllPosts.graphql automatisch generiert wurde:

Mein einziges Problem ist jetzt, dass ich weiß nicht, wie die AllPostsQuery cladssd in meine MainActivy zu importieren.

ich einfach versucht:

import AllPostsQuery; 

aber das funktioniert nicht:

nicht Symbol AllPostsQuery auflösen kann.

Muss ich dem Importpfad Präfixe hinzufügen?

+1

Sehen Sie hier, wie AS Klassen für Sie automatisch importieren lassen https://stackoverflow.com/questions/22272524/how-to-auto-import-the-necessary-classes-in-android-studio-with-shortcut – Adinia

+0

Danke für den Kommentar! Ich glaube, dass mein Auto-Import bereits eingerichtet ist, er hat für alle anderen Klassen funktioniert (ich habe bisher keinen einzigen Import selbst geschrieben). https://imgur.com/VcVFXp4 irgendwelche anderen Ideen? – nburk

+1

Sie sollten eine Paketverzeichnisstruktur unter 'graphql /' einrichten. Der generierte Code wird in dieses Paket übernommen. Siehe [dieses Beispielprojekt] (https://github.com/commonsguy/cw-graphql/tree/v0.3/Trips/CW/StaticList). – CommonsWare

Antwort

2

Die Art, wie Ihr Projekt in der Frage strukturiert ist, haben Sie Ihr GraphQL Dokument und das Schema JSON direkt in graphql/. Dies führt dazu, dass Ihre generierte Java-Klasse nicht in ein Paket eingefügt wird. Das ist wahrscheinlich nicht das, was du willst.

Apollo-Android verwendet den Ansatz, der für einige andere Formen von Quellcode (Java, AIDL usw.) verwendet wird, und verwendet einen Paketverzeichnisbaum. In this sample project (von this book) habe ich mein GraphQL Dokument und Schema JSON in graphql/com/commonsware/graphql/trips/api. Als Ergebnis sind meine generierten Java-Klassen im com.commonsware.graphql.trips.api-Paket enthalten.

Richten Sie eine Reihe von Unterverzeichnissen für das Java-Paket ein, in das der generierte Code eingefügt werden soll, und verschieben Sie Ihr GraphQL-Dokument und das JSON-Schema dort.

Verwandte Themen