@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

Android Studio2系でAndroid Lintを使う

公式のドキュメントっぽいところに書いてあるコマンドがなくて、gradleのサブコマンド?を実行すればよかった。

developer.android.com

上のページにはlintコマンドがあるかのような記述になっているが、パスが通っていない。 sdktoolを入れて実行してもgradlewを叩けと怒られる。その通りgradlewで実行すればよかった。

ターミナルから実行する

プロジェクトルート(gradlewファイルがある場所)に移動してgradlewを実行する。

./gradlew app:lint

おそらくappの部分はプロジェクトによって変更が必要。生成されたhtmlに結果が出力される。

lintのエラーや警告が発生していると、コマンドの実行エラーのように表示され、結果が分かりにくいが、 エラー文の少し上に、htmlとxmlに出力したと記載されていた。(そのせいでlintの実行に失敗していると思い込んでbuild.gradleを書き換えたりした)

Wrote HTML report to file:///path/to/app/build/outputs/lint-results-debug.html
Wrote XML report to file:///path/to/app/build/outputs/lint-results-debug.xml

このへんは上記ページのオプションで出力フォーマットを変更できる。

Android Studioから実行する

メニューから Analyze -> Inspect Code... を選択すると実行できる。このときにlint対象を選択できるが、"未コミットの物のみ"という選択肢があるのが便利。 たぶんgradlew用にも指定できるだろうけどまだ探していない。

こちらは結果がツリー表示されるし、それぞれの問題の解決手段や物によっては解決するコマンド実行まで表示されるので便利。

Gitのpush hookに使うときでもなければメニューから実行するかショートカットキーを割り当てればいいんじゃないかな。あとスクロールバーの色がlint結果なのでそこを見ればよい。

気が向けばスクリーンショットを追加するかも。