mixi-inc/AndroidTraining で Android アプリ開発の学習中
スマートフォンのアプリ*1を作れるようになっておきたいと思い、GitHub にある mixi-inc/AndroidTraining で学習することにしました。
開発環境
AndroidStudio
AndroidTraining では Eclipse に ADT を入れていますが、私は IntelliJ がベースとなっている Android Studio を利用しています。IntelliJ カッコ良いんで。
Android Studio は http://developer.android.com/sdk/installing/studio.html あたりからダウンロードしました。
ダウンロードしたバージョンは 0.3.2 だったのですが、起動時に最新版があるよ!と通知されるので即更新して 0.4.2 になっています。
Android Studio を起動したら、まず最初に SDK をダウンロードしました。ツールバーにある SDK Manager のアイコンをクリックして、SDK Manager から必要そうなものにチェックを入れて Install Package しています。おそらく初回では、最初からいくつかのパッケージが選択・削除されている状態だと思うので、そのまま Install Package ボタンをクリックしたような記憶があります。
Genymotion
Android の高速エミュレータです。http://www.genymotion.com/ から入手できます。要アカウント登録。
Genymotion は VirtualBox 上で動作するので、VirtualBox も必要です。
http://dev.classmethod.jp/smartphone/android/genymotion-install/ あたりを参考にインストールしました。
SDK にも標準でエミュレータがついているのですが、Intel x86 Emulator Accelerator (HAXM) を有効にしてもちょっと遅い感じがあります。Genymotion は起動も描画も十分に早く、またエミュレータ自体のウィンドサイズに合わせて拡大/縮小される、GPSやカメラなどの偽装も簡単にできるのが良いです。
Tips
AndroidStudio を使っていて、なんだかわからないけどおかしいなと思った時にしている事のメモです。
レイアウトファイルに記述している FQCN が赤くなっている*2
メニューから File -> Invalidate Caches / Restart... をクリックし、表示されたダイアログの Invalidate and Restart をクリックしてキャッシュのクリアおよび再起動で解消しました。
依存ライブラリを追加したい
依存ライブラリを利用するモジュールの build.gradle に dependencies ブロックを追加します。
例えば twitter4j-stream を追加するならば以下のようになります。
dependencies { compile group: 'org.twitter4j', name: 'twitter4j-stream', version: '3.0.5' }
Gradle についてはユーザガイドを日本語訳されたありがたい方いるので、それを参考にすると良いかと思います。
ユーザガイドの日本語訳版は http://gradle.monochromeroad.com/docs/userguide/userguide.html になります。
依存ライブラリの追加が反映されない?
メニューから Tools -> Android -> Sync Project with Gradle Files をクリックします。ツールバーにもあるのでそちらでもOKです。
コード補完したときに候補に出てくるようになります。
依存ライブラリ追加したら、ビルドに失敗するようになった
ビルドに失敗し、"META-INF/LICENSE.txt" が重複しているよ!みたいなメッセージが出ている状況のことです。
build.gradle の android の packagingOptions ブロックに exclude に上記のファイル名を指定します。
android { ... packagingOptions { exclude 'META-INF/LICENSE.txt' } }