昔々、特にEclipseランドでは、Lintはすべてのビルドで実行されるため、Lintチェックに失敗した場合は、すぐに判明します。 Android Studio(1.3でテスト済み)の場合、Lintはビルドでデフォルトで実行されません。初心者はLintがチェックする間違いを犯す可能性がありますが、Lintは実際に実行されないため、それらについて知ることはできません。
(IOW、リントテストがフォレストで実行されなかった場合、実際にリントテストはありますか?)
このブログ投稿 へのコメントは、ビルドの一部としてLintを実行する方法を示しています:
lint
という名前の「Gradleタスクの実行」にステップを追加しますただし、これによりコマンドラインLintが実行され、XMLおよびHTMLでハードドライブにレポートが作成されます。これは機能しますが、Android StudioでIDE内のLintチェックを実行すると、結果がIDEパネルに表示されます。
IDE内のリントチェックを実行するプロジェクトビルドを設定する方法はありますか?
onlyに設定できる場合のボーナスポイントは、Lintを実行します。Analyze> Inspect Codeによる完全な分析ではありません。完全な分析が役立つ場合もありますが、Lintは、Android Studio(例:スペルチェック))によって実行される疑わしい有用な分析は言うまでもなく、十分に遅いです。
これを設定することは、すべてのプロジェクトにとって素晴らしい計画ではありませんが(リントスキャンは遅い)、Androidを初めて使用する人にとっては、適切な動きかもしれません。
Lintは、Android Studioで実行する必要があります。 build.gradleファイルのlintOptionsを使用してオフにします。
これは http://developer.Android.com/tools/debugging/improving-w-lint.html#studio にあるドキュメントからのものです
Android Studio、設定されたlintおよびIDEアプリをビルドするたびに検査が自動的に実行されます。IDE IntelliJコード検査を実行するリントチェックとともに、コードレビューを合理化します。
注:検査の重大度レベルを表示および変更するには、File> Settings> Project Settingsメニューをクリックして、サポートされている検査のリストを含む検査構成ページを開きます。
Android Studioでは、特定のビルドバリアント、またはbuild.gradleファイルのすべてのビルドバリアントに対してlint検査を実行できます。lintOptionsプロパティをAndroidビルドファイルの設定:Gradleビルドファイルのこのコードスニペットは、quietオプションをtrueに設定し、abortOnErrorオプションをfalseに設定する方法を示しています。
Android { lintOptions { // set to true to turn off analysis progress reporting by lint quiet true // if true, stop the gradle build if errors are found abortOnError false // if true, only report errors ignoreWarnings true } ... }
Android Studio、アプリケーションまたは右クリックメニューから検査を手動で実行するには、[分析]> [コードの検査]を選択します。検査範囲の指定ダイアログが表示され、目的の検査範囲とプロファイルを指定できます。
Gradle build.gradleファイルのlintOptionsブロックに追加できる他のlintオプションは次のとおりです。 http://tools.Android .com/tech-docs/new-build-system/user-guide#TOC-Lint-support
Android lint: http://developer.Android.com/tools/help/lint.html の詳細をご覧ください。
以前は、Android studio。
これにより、実行がスケジュールされたときにタスクが実行されます。
Android Lintの検査プロファイルを作成
これで、「Android Lint Profile」を選択して、Analyze-> Inspect Code ...を介してAndroid Lintルールでのみ検査を実行できます。
次のステップでは、次のステップでマクロを記録しましょう(編集->マクロ->マクロ記録の開始)。
マクロの記録を停止し、「Lint and Run」という名前を付けます。
最後にすべきことは、「Shift + F10」をマクロにマッピングすることです。 [ファイル]-> [設定...]-> [キーマップ]に移動します。マクロを見つけてショートカットを変更します。
これで、各ビルドの前にlintが実行されますShift + F10を押すと、結果がAndroid Studioパネルに表示されます。
しかし、このソリューションには、bigの欠点が1つあります。 [実行]ボタンをクリックしてビルドを実行すると、リント分析は実行されません。
この情報が役立ち、誰かがそれを使ってより良い解決策を提供するかもしれません。
これは、プッシュ時にlintを自動的に実行し、Lintエラーが見つかった場合にプッシュに失敗する、事前プッシュgitフックを追加することでこれを達成しました。プッシュ前のフックスクリプトはAndroidプロジェクトリポジトリに保存され、gradleを介してユーザーのローカルマシンに自動的にインストールされました。
install-git-hooks.gradle
def hookDest = new File("${rootProject.rootDir}/.git/hooks/pre-Push")
def prePushHook = new File("${rootProject.rootDir}/pre-Push")
task installGitHooksTask(type: Copy) {
hookDest.delete()
hookDest << prePushHook.text
}
task gitExecutableHooks() {
Runtime.getRuntime().exec("chmod -R +x ${hookDest}");
println "gitExecutableHooks"
}
gitExecutableHooks.dependsOn installGitHooksTask
アプリのbuild.gradleより
apply from: rootProject.file('gradle/install-git-hooks.gradle')
事前プッシュ
#!/bin/sh
#
# This hook is for Android project git repos.
#
# You can use git config variables to customize this hook.
# -----------------------------------------------------------
# Change hooks.lintTargetDirectory to point at a non . directory
# Change hooks.lintArgs to add any custom lint arguments you prefer
# Get custom info
dirToLint=$(git config hooks.lintTargetDirectory)
lintArgs=$(git config hooks.lintArgs)
projectDir=$(git rev-parse --show-toplevel)
lintReportPath="/app/lint-report.html"
# If user has not defined a preferred directory to lint against, make it .
if [ -z "$dirToLint"]
then
dirToLint="."
fi
# Perform lint check
echo "Performing pre-commit lint check of ""$dirToLint"
./gradlew lint
lintStatus=$?
if [ $lintStatus -ne 0 ]
then
echo "Lint failure, git Push aborted."
echo "Open ${projectDir}${lintReportPath} in a browser to see Lint Report"
exit 1
fi
exit $lintStatus
1つの可能な(ただし実装が難しい)ソリューションは、これを行うためにIDEAプラグインを書くことです。以下のプラグインをリポジトリからダウンロードするか、githubからコードをダウンロードすることでこれを回避できます。 'compile'および 'inspect code'アクションを順番に実行します。
public class BuildAndLint extends AnAction {
public void actionPerformed(AnActionEvent e) {
String[] actions = {"CompileProject", "InspectCode"};
for(String action: actions) {
AnAction anAction = ActionManager.getInstance().getAction(action);
DataContext context = e.getDataContext();
AnActionEvent anActionEvent = new AnActionEvent(null, context, "", anAction.getTemplatePresentation(), ActionManager.getInstance(), 0);
anAction.actionPerformed(anActionEvent);
}
}
}
コードはテスト済みで、Android Studio 1.3。すべてを実行するのではなく、検査対象を選択するウィンドウを開きます。
リンク