せでぃのブログ

ブログ初心者おいどんのどうでもいい愚痴やどうでもいい愚痴やどうでもいいマメ知識などを披露するチラシの裏です。

Mac-Eclipse環境でVolleyがインポートできなくて困った-その1

20150618修正:記事全面改修
20150617追記:git submodule addについて追記
20150613修正:javabuildpathの追加位置を修正
20150612追記:解決策を追加vividcode.hatenablog.com
vividcode.hatenablog.com
f:id:Sediment:20150611012056p:plain
 無料テキストの突き放しっぷりに腹立ってきたw
 この辺のサイトを読んでやっとわかってきたんだけど、Volleyのインストール理由・成否は、ResponseとかRequestQueueのクラスを記述して出てくるエラーに対して、"→import hogehoge"という解決方法を得ることだ。
f:id:Sediment:20150611013023p:plain


 Volleyをgitで取得まではいいのだが、その後、プロジェクト化してライブラリ化してAddしても、antでビルドしてjarファイルをコピペしても、Responseクラスのインポートが出ないんだよぉおぉぉぉおおおおおおおおお。動けえええええええええ!

プロジェクトのSource追加で解決

 解決できた。ネチネチとあちこちのページを見てみたり、Eclipseを無駄に再起動したりcleanしたりしてみたけど、Mac,Eclipseという組み合わせだと、volley使えないんじゃないか、インストールでどっか間違いがあったんじゃないかと不安になるくらいハマった。
 結論から言うと、プロジェクトのプロパティにあるJavaBuildPathでvolleyのソースを追加するという作業が必要だった。

大きく2パターン

 外部クラスを利用するにあたって、大きく分けてこの2パターンがあるみたい。techinstituteの無料テキストで示しているのは前者の外部プロジェクト作成型なので、そちらから手順を置いてみる。後者は別記事に分けます。
・volleyを利用したいプロジェクトとは別にvolleyプロジェクトを作ってそれを参照する(外部プロジェクト作成型)
・volleyを利用したいプロジェクトの内部にvolleyフォルダを作成(volleyフォルダ内包型)
 →以下の別記事に分けた
Mac-Eclipse環境でVolleyがインポートできなくて困った-その2 - せでぃのブログ

外部プロジェクト作成型の手順

1.まずはgit clone

 CUIでやっても問題ないが、それはvolleyフォルダ内包型でやるので、ここではEclipseの操作を乗せる。やることは無料テキストにある内容なのでさらっと飛ばしてもOK。
 CUIでやるなら、1つだけ注意がある。cloneの位置だ。GUIのデフォルト位置と合わせるならこんな操作になる。

$ pwd
/Users/ユーザ名/
$ mkdir git
$ cd git
$ pwd
/Users/ユーザ名/git/
$ git clone https://android.googlesource.com/platform/frameworks/volley

 EclipseGUIによるgit cloneはこんな感じで進める。
f:id:Sediment:20150618143512p:plain
 Clone a Git Repositoryを押す。
f:id:Sediment:20150618143528p:plain
 volleyのURL↓を貼る。

https://android.googlesource.com/platform/frameworks/volley

f:id:Sediment:20150618143542p:plain
f:id:Sediment:20150618143609p:plain
f:id:Sediment:20150618143622p:plain
f:id:Sediment:20150618143645p:plain

2.volleyプロジェクトをインポート

 javaメイン画面に戻り、File→Importを選択。
f:id:Sediment:20150618144117p:plain
 Android→existing android code into workspaceを選択。
f:id:Sediment:20150618144131p:plain
 プロジェクトの位置はgit cloneしたところの、gitディレクトリを選んでOK。
f:id:Sediment:20150618144146p:plain
 New Project Nameに「Volley」と入力して、忘れずにリターン。Copy Project into Workspaceにチェックを入れる。
f:id:Sediment:20150618144214p:plain
 これでWorkspaceにプロジェクトが出てくるはず。
f:id:Sediment:20150618153808p:plain

3.Volleyプロジェクトにvolleyのsource追加

 Volleyプロジェクトのプロパティを開き、JavaBuildPathを選択。sourceタブを開く。Add Folderボタンを押す。
f:id:Sediment:20150612194221p:plain
javaフォルダにチェックを入れる。
f:id:Sediment:20150618145015p:plain
こんな感じでOK。
f:id:Sediment:20150618144920p:plain

4.isLibraryにチェック

 3.に引き続きVolleyプロジェクトのプロパティで、今度はAndroidの項目にてisLibraryにチェックを入れる。
f:id:Sediment:20150618145332p:plain

5.volleyクラスを利用するプロジェクトでLibraryをaddするか、jarファイルをコピペする

 ここでやり方が2つある。1つは無料テキストの通り、volleyクラスを利用するプロジェクト(Syllabus)でaddする方法。プロパティ→Androidで以下の画面が出る。
f:id:Sediment:20150618151008p:plain
 もう1つは、Volleyプロジェクトのbin/volley.jarファイルを
f:id:Sediment:20150618150318p:plain
volleyクラスを利用するプロジェクト(Syllabus)のlibsフォルダにペーストする方法。
f:id:Sediment:20150618155809p:plain

 どちらか一方だけで足りる。

6.クラスimport確認

 これで、Volley関連のResponseなどのエラーが出ているクラスで、"→import hogehoge"が出るようになる。2週間の苦闘を経て感動して泣きそうになる。もうちょっと我慢だ。
 念のため、MainActivity.javaでimport、ファイル保存して確認しよう。
f:id:Sediment:20150613092409p:plain
 Volley側のファイル及びディレクトリでもエラーがないことを確認。
f:id:Sediment:20150618150318p:plain


 importの逆ドメイン(com.android.volley)で、エラーが出るようなら3.の追加するフォルダ位置を変えてみよう。
f:id:Sediment:20150613085830p:plain