Unityを使っていると、Androidの実機でのデバッグの方法について迷う時がある。通常のAndroid開発であれば、eclipse等のIDE上で完結するけれど、ログ見るためだけにIDE起動しちゃうの?という話。
方法として、2つ挙げる
- adb logcatコマンドを使う
- Android developer toolsを使う
adb logcatを使う場合
時間付きでログを出す例
$ adb logcat -v time
これでもできなくはないが、端末によっては大量の変なログが吐かれてたりするので、こんなことになって辛い。
$ adb logcat -c | adb logcat -v time | grep -v D/SNFCCCS 2>&1 | tee debug.log
Android developer toolsを使う場合
こっちがおすすめ。
Android SDKをDLした時に、付いてくるdeveloper toolsを直接起動する方法。
http://developer.android.com/sdk/index.html
例えば、以下のパスに格納されている。
adt-bundle-mac-x86_64/sdk/tools
ここで、tools以下のmonitorを起動する。
$ adt-bundle-mac-x86_64/sdk/tools/monitor
そうすると、eclipse上で操作していたようなツールを、直接起動できる。
Unity上のログだけを見る用に、Filterを追加しておく。
ちなみに、このツール上でスクリーンショットが撮れるので、端末上で撮る -> PCへ転送という手間もいらない。
起動方法
以下を実行するだけで起動できるが、
$ adt-bundle-mac-x86_64/sdk/tools/monitor
パスを指定しておいたほうが便利。
.zshrcに以下の記述を追加
export PATH=$PATH:$HOME/src/adt-bundle-mac-x86_64-20130522/sdk/tools
あとはシェル上でmonitorと打つだけ!
$ monitor
monitor起動時にJavaに関してエラーが出た時
"Java 6 SE6 runtime 入れろやー" とエラーが出た時、ウィンドウに従ってインストールしようとしたが、Network errorなる表示がされてうまく行かなかった。
以下とまさに同じ問題。
https://discussions.apple.com/message/23480816#23480816
上記スレの回答にあるように、Apple公式からインストールすると解決する。
http://support.apple.com/kb/DL1572
余談
同様のツールであるddmsも起動できるが、"Depricatedだからmonitorつかってね"と言われるので、monitorを使う。
$ ddms
The standalone version of DDMS is deprecated.
Please use Android Device Monitor (tools/monitor) instead.