2017-10-25 5 views
1

私はAndroidスタジオを初めて使い、GraphQLとApollo Clientという小さなサンプルアプリケーションを作成したいと考えています。Android StudioのApollo Client(GraphQL)から生成されたクラスをインポートする方法

ビルド環境と自動コード生成が正常にセットアップされました。ここでは、ファイル構造のスクリーンショットだ、build/generated/apollo/AllPostsQuerysrc/main/graphql/AllPosts.graphqlに基づいて自動生成されたクラスがある:今

私の唯一の問題は、私は私のMainActivyAllPostsQuery cladssdをインポートする方法がわからないということです。

は、私は単純に試してみました:

import AllPostsQuery; 

が、それは動作しません:

シンボルAllPostsQueryを解決できません。

インポートパスにプレフィックスを追加する必要がありますか?

+1

ここでは、ASが自動的にクラスをインポートできるようにする方法を示します。https://stackoverflow.com/questions/22272524/how-to-auto-import-the-necessary-classes-in-android-studio-with-shortcut – Adinia

+0

コメントありがとう!私は自分の自動インポートがすでにセットアップされていると信じています。それは他のクラスすべてで機能しました(私はこれまでに自分で一つのインポートを書きませんでした)。他のアイデアはhttps://imgur.com/VcVFXp4? – nburk

+1

'graphql /'の下にパッケージディレクトリツリーを設定する必要があります。生成されたコードはそのパッケージに入れられます。 [このサンプルプロジェクト](https://github.com/commonsguy/cw-graphql/tree/v0.3/Trips/CW/StaticList)を参照してください。 – CommonsWare

答えて

2

質問の中でプロジェクトがどのように構成されているかは、GraphiteドキュメントとスキーマJSONを直接graphql/に入れたものです。その結果、生成されたJavaクラスがパッケージに入れられなくなります。それはおそらくあなたが望むものではありません。

Apollo-Androidは、他の形式のソースコード(Java、AIDLなど)に使用されているアプローチを採用し、パッケージディレクトリツリーを使用します。 this sample projectthis book)には、GraphQLドキュメントとスキーマJSONがgraphql/com/commonsware/graphql/trips/apiにあります。その結果、生成されたJavaクラスはcom.commonsware.graphql.trips.apiパッケージに含まれています。

したがって、生成するコードを入れるJavaパッケージのサブディレクトリを設定し、そこでGraphQLドキュメントとスキーマJSONを移動します。

関連する問題