lint チェックによるコードの改善

アプリが機能要件を満たしていることを確認するためにテストを作成するだけでなく、Lint ツールを使用してコードを実行し、コードに構造上の問題がないことを確認することも重要です。lint ツールは、Android アプリの信頼性と効率に影響し、コードの保守を困難にする可能性のある構造の悪いコードを見つけるのに役立ちます。アプリを公開する前に、lint で検出されたエラーをすべて修正することを強くおすすめします。

たとえば、XML リソース ファイルに未使用の名前空間が含まれていると、スペースが消費され、不要な処理が必要になります。非推奨の要素の使用や、ターゲット API バージョンでサポートされていない API 呼び出しなどの構造上の問題があると、コードが正しく実行されない可能性があります。Lint を使用すると、これらの問題を解決できます。

lint のパフォーマンスを向上させるために、コードにアノテーションを追加することもできます。

概要

Android Studio には、lint と呼ばれるコードスキャン ツールがあります。このツールを使用すると、アプリの実行やテストケースの作成を行わずに、コードの構造上の品質に関する問題を特定して修正できます。ツールで検出された各問題は、説明メッセージと重大度レベルとともに報告されるため、優先的に行うべき重要な改善を特定できます。問題の重大度レベルを下げて、プロジェクトに関係のない問題を無視したり、重大度レベルを上げて特定の問題をハイライト表示したりすることもできます。

lint ツールは、Android プロジェクトのソースファイルをチェックして潜在的なバグを探し、正確性、セキュリティ、パフォーマンス、ユーザビリティ、ユーザー補助、国際化機能を最適化するための改善点を検出します。Android Studio を使用すると、アプリをビルドするたびに、設定済みの lint インスペクションと IDE インスペクションが実行されます。ただし、このページで説明するように、手動でインスペクションを実行することも、コマンドラインから lint を実行することもできます。

Android Studio の使用中は、組み込みの lint ツールによってコードがチェックされます。次の 2 つの方法で警告とエラーを表示できます。

  • エディタ ウィンドウのポップアップ テキストとして表示されます。lint で問題が見つかると、問題のあるコードが黄色でハイライト表示されます。より重大な問題の場合は、コードが赤で下線表示されます。
  • [コード] > [コードを検査] をクリックしたときに表示される lint の [検査結果] ウィンドウ。

注: Android Studio でコードがコンパイルされると、IntelliJ コード インスペクションも実行されるため、効率的にコードレビューを実施できます。Android Studio をできるだけ最新の状態に保ち、最新の lint ルールと検査を利用できるようにします。

図 1 は、lint ツールがアプリのソースファイルを処理する仕組みを示しています。

lint ツールを使用したコード スキャン ワークフロー。
図 1. lint ツールを使用したコード スキャン ワークフロー。
アプリのソースファイル
ソースファイルは、Kotlin ファイル、XML ファイル、アイコン、ProGuard 構成ファイルなど、Android プロジェクトを構成するファイルで構成されます。
lint.xml ファイル
除外する lint チェックを指定し、問題の重大度レベルをカスタマイズするために使用する設定ファイル。
lint ツール
Android プロジェクトに対して実行できる静的コードスキャン ツール。コマンドラインまたは Android Studio 内で実行できます。lint ツールは、Android アプリの品質とパフォーマンスに影響する可能性のある構造上のコードの問題をチェックします。
lint チェックの結果
lint チェックの結果は、コンソールか、または Android Studio の [Inspection Results] ウィンドウで確認できます。コマンドラインから lint を実行すると、結果は build/ フォルダに書き込まれます。詳しくは、検査を手動で実行するをご覧ください。

コマンドラインから lint を実行する

Android Studio または Gradle を使用している場合は、Gradle ラッパーを使用して、プロジェクトのルート ディレクトリから次のいずれかのコマンドを入力して、プロジェクトの lint タスクを呼び出します。

注: 最新の lint ルールを使用するには、Android Gradle プラグインをできるだけ最新の状態に保ってください。

  • Windows の場合:
    gradlew lint
    
  • Linux または macOS の場合:
    ./gradlew lint
    

出力は次のようになります。

> Task :app:lintDebug
Wrote HTML report to file:<path-to-project>/app/build/reports/lint-results-debug.html

lint ツールがチェックを完了すると、lint レポートの XML バージョンと HTML バージョンのパスが提供されます。図 2 に示すように、HTML レポートに移動してブラウザで開くことができます。

HTML 版 lint レポートの例
図 2. HTML 版 lint レポートの例。

プロジェクトにビルド バリアントが含まれている場合、lint を実行するとデフォルトのバリアントしかチェックされません。別のバリアントに対して lint を実行するには、バリアント名を大文字にして、先頭に lint を付ける必要があります。

./gradlew lintRelease

注: Lint はビルドの一部として自動的に実行されません。既存のソースコードをビルドする際に最新の lint チェックを確認できるように、継続的インテグレーション ビルドの一部として lint を明示的に実行することを強くおすすめします。

コマンドラインから Gradle タスクを実行する方法については、コマンドラインからアプリをビルドするをご覧ください。

スタンドアロン ツールで lint を実行する

Android Studio も Gradle も使用していない場合は、スタンドアロンの lint ツールを使用するために Android SDK コマンドライン ツールをインストールします。lint ツールは android_sdk/cmdline-tools/version/bin/lint に配置されます。

注: Gradle プロジェクトでスタンドアロン ツールを実行しようとすると、エラーが発生します。Gradle プロジェクトで lint を実行するには、常に gradle lint(Windows の場合)または ./gradlew lint(macOS または Linux の場合)を使用する必要があります。

プロジェクト ディレクトリにあるファイルのリストに対して lint を実行するには、次のコマンドを使用します。

lint [flags] <project directory>

たとえば、myproject ディレクトリとそのサブディレクトリにあるファイルをスキャンするには、下記のコマンドを実行します。問題 ID MissingPrefix は、Android 名前空間接頭辞が不足している XML 属性のみをスキャンするよう lint に指示します。

lint --check MissingPrefix myproject 

このツールでサポートされているフラグとコマンドライン引数の一覧は、次のコマンドで確認できます。

lint --help

次の例は、Earthquake というプロジェクトに対して lint コマンドを実行したときのコンソール出力を示しています。

$ lint Earthquake

Scanning Earthquake: ...............................................................................................................................
Scanning Earthquake (Phase 2): .......
AndroidManifest.xml:23: Warning: <uses-sdk> tag appears after <application> tag [ManifestOrder]
  <uses-sdk android:minSdkVersion="7" />
  ^
AndroidManifest.xml:23: Warning: <uses-sdk> tag should specify a target API level (the highest verified version; when running on later versions, compatibility behaviors may be enabled) with android:targetSdkVersion="?" [UsesMinSdkAttributes]
  <uses-sdk android:minSdkVersion="7" />
  ^
res: Warning: Missing density variation folders in res: drawable-xhdpi [IconMissingDensityFolder]
0 errors, 4 warnings

出力例には、3 つの警告とエラーが表示されていません。

2 つの警告は、プロジェクトの AndroidManifest.xml ファイルに関連しています。

  • ManifestOrder
  • UsesMinSdkAttributes

1 つの警告は res ディレクトリ(IconMissingDensityFolder)に関連しています。

警告を抑制するように lint を設定する

デフォルトでは、lint スキャンを実行すると、lint がサポートするすべての問題がチェックされます。lint でチェックする問題を限定することも、問題の重大度レベルを指定することもできます。たとえば、プロジェクトに関係のない特定の問題の lint チェックを抑制したり、重大でない問題をより低い重大度レベルで報告するように lint を構成したりできます。

重大度レベルは次のとおりです。

  • enable
  • disable または ignore
  • informational
  • warning
  • error
  • fatal

次に示すさまざまなレベルで lint チェックを設定できます。

  • グローバル(プロジェクト全体)
  • プロジェクト モジュール
  • 製品版モジュール
  • テスト モジュール
  • 開いているファイル
  • クラス階層
  • バージョン管理システム(VCS)のスコープ

lint ファイルを設定する

lint チェックの設定は、lint.xml ファイルで指定できます。このファイルを手動で作成する場合は、Android プロジェクトのルート ディレクトリに配置してください。

lint.xml ファイルは、1 つ以上の <issue> 子要素を囲む <lint> 親タグで構成されます。Lint は、各 <issue> に対して一意の id 属性値を定義します。

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- list of issues to configure -->
</lint>

問題の重大度レベルを変更したり、問題の lint チェックを無効にしたりするには、<issue> タグで重大度属性を設定します。

ヒント: lint でサポートされている問題とそれに対応する問題 ID の完全なリストについては、lint --list コマンドを実行してください。--list オプションは、スタンドアロンの lint ツールから実行する必要があります。

サンプル lint.xml ファイル

次の例は、lint.xml ファイルの内容を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- Disable the ComposableNaming check in this project -->
    <issue id="ComposableNaming" severity="ignore" />

    <!-- Ignore the ComposeUnrememberedState issue in the specified files -->
    <issue id="ComposeUnrememberedState">
        <ignore path="src/main/java/com/example/myapp/MainActivity.kt" />
        <ignore path="src/main/java/com/example/myapp/ui/components/SpecialButton.kt" />
    </issue>

    <!-- Ignore the ComposeModifierMissing issue in the specified file -->
    <issue id="ComposeModifierMissing">
        <ignore path="src/main/java/com/example/myapp/ui/screens/HomeScreen.kt" />
    </issue>

    <!-- Change the severity of hardcoded strings to "error" -->
    <issue id="HardcodedText" severity="error" />
</lint>

この例は、さまざまな問題タイプがどのように構成されているかを示しています。ComposableNaming チェックは完全に無効になり、ComposeUnrememberedState チェックは、囲まれた <ignore ... /> 宣言で指定されたファイルでのみ無効になります。

Kotlin と XML のソースファイルの lint チェックを設定する

[Preferences] ダイアログで、Kotlin と XML のソースファイルの lint チェックをオフにできます。

  1. [File] > [Settings](Windows の場合)または [Android Studio] > [Preferences](macOS または Linux の場合)を選択します。
  2. [Editor] > [Inspections] を選択します。
  3. 無効にするには、該当するソースファイルの選択を解除します。

適切なプロファイルを選択することで、IDE または個々のプロジェクトのいずれかに設定できます。

Kotlin で lint チェックを設定する

Android プロジェクトのクラスまたは関数に対する lint チェックのみを無効にするには、そのコードに @SuppressLint アノテーションを追加します。

次の例は、特定の関数で NewApi 問題の lint チェックをオフにする方法を示しています。lint ツールは、このクラスの他の関数では引き続き NewApi 問題をチェックします。

@SuppressLint("NewApi")
fun logNotificationChannelInfo() {
    // Uses NotificationChannel (requires API 26+)
    ...
}

これは、任意のコンポーザブルで実現できます。次のコード スニペットは、任意のコンポーザブルで NewApi チェックをオフにする方法を示しています。

  @SuppressLint("NewApi")
  @Composable
  fun MyComposable{
    ...
  }
  

次の例は、FeedProvider クラスで ParserError 問題の lint チェックをオフにする方法を示しています。

@SuppressLint("ParserError")
class FeedProvider : ContentProvider() {

ファイル内のすべての lint 問題のチェックを抑制するには、all キーワードを使用します。

@SuppressLint("all")

同じアノテーションを使用して、任意のコンポーズ可能な関数で lint チェックを抑制できます。

XML で lint チェックを設定する

XML ファイルの特定のセクションに対する lint チェックを無効にするには、tools:ignore 属性を使用します。lint.xml ファイルに次の名前空間値を挿入すると、lint ツールによって属性が認識されます。

namespace xmlns:tools="http://schemas.android.com/tools"

次の例は、strings.xml ファイルの <resources> 要素で UnusedResources 問題の lint チェックをオフにする方法を示しています。親要素で宣言された ignore 属性は、その子要素によって継承されます。この例では、囲まれたすべての <string> 要素の lint チェックも無効になります。

<resources
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="UnusedResources" >

    <string name="app_name">My App</string>
    <string name="unused_string">Unused String</string>
</resources>

複数の問題に対するチェックを無効にするには、無効にする問題のリストをカンマ区切り文字列で指定します。次に例を示します。

tools:ignore="NewApi,StringFormatInvalid"

XML 要素のすべての問題に対する lint チェックを無効にするには、all キーワードを使用します。

tools:ignore="all"

Gradle で lint オプションを設定する

Android Gradle プラグインを使用すると、モジュール レベルの build.gradle ファイルの lint{} ブロックを使用して、実行または無視するチェックなど、特定の lint オプションを構成できます。

次のコード スニペットは、構成可能なプロパティの一部を示しています。

Kotlin

android {
    ...
    lint {
        // Turns off checks for the issue IDs you specify.
        disable += "TypographyFractions" + "TypographyQuotes"
        // Turns on checks for the issue IDs you specify. These checks are in
        // addition to the default lint checks.
        enable += "RtlHardcoded" + "RtlCompat" + "RtlEnabled"
        // To enable checks for only a subset of issue IDs and ignore all others,
        // list the issue IDs with the 'check' property instead. This property overrides
        // any issue IDs you enable or disable using the properties above.
        checkOnly += "NewApi" + "InlinedApi"
        // If set to true, turns off analysis progress reporting by lint.
        quiet = true
        // If set to true (default), stops the build if errors are found.
        abortOnError = false
        // If set to true, lint only reports errors.
        ignoreWarnings = true
        // If set to true, lint also checks all dependencies as part of its analysis.
        // Recommended for projects consisting of an app with library dependencies.
        checkDependencies = true
    }
}
...

Groovy

android {
    ...
    lint {
        // Turns off checks for the issue IDs you specify.
        disable 'TypographyFractions','TypographyQuotes'
        // Turns on checks for the issue IDs you specify. These checks are in
        // addition to the default lint checks.
        enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'
        // To enable checks for only a subset of issue IDs and ignore all others,
        // list the issue IDs with the 'check' property instead. This property overrides
        // any issue IDs you enable or disable using the properties above.
        checkOnly 'NewApi', 'InlinedApi'
        // If set to true, turns off analysis progress reporting by lint.
        quiet true
        // If set to true (default), stops the build if errors are found.
        abortOnError false
        // If set to true, lint only reports errors.
        ignoreWarnings true
        // If set to true, lint also checks all dependencies as part of its analysis.
        // Recommended for projects consisting of an app with library dependencies.
        checkDependencies true
    }
}
...

問題の特定の重大度をオーバーライドする lint メソッドは、すべて構成の順序を尊重します。たとえば、finalizeDsl() で問題を fatal に設定すると、メイン DSL での問題の無効化よりも優先されます。

警告ベースラインを作成する

プロジェクトの現在の警告セットのスナップショットを作成し、将来のインスペクションでスナップショットをベースラインとして使用して、新しい問題のみがレポートされるようにすることが可能です。ベースライン スナップショットを使用すると、すべての既存の問題に戻って対処する手間をかけずに、lint でビルドエラーをチェックできます。

ベースライン スナップショットを作成するには、プロジェクトの build.gradle ファイルを次のように変更します。

Kotlin

android {
    lint {
        baseline = file("lint-baseline.xml")
    }
}

Groovy

android {
    lintOptions {
        baseline file("lint-baseline.xml")
    }
}

初めてこの行を追加したとき、ベースラインを確立するために lint-baseline.xml ファイルが作成されます。それ以降、ツールはベースラインを確認するためにファイルの読み取りのみを行います。新しいベースラインを作成する場合は、手動でファイルを削除し、lint を再度実行してファイルを再作成します。

次に、IDE から [Code] > [Inspect Code] を選択して、またはコマンドラインから(下記を参照)lint を実行します。出力に、lint-baseline.xml ファイルの場所が表示されます。セットアップのファイル パスは、ここに示されているものと異なる場合があります。

$ ./gradlew lintDebug -Dlint.baselines.continue=true
...
Wrote XML report to file:///app/lint-baseline.xml
Created baseline file /app/lint-baseline.xml

lint を実行すると、lint-baseline.xml ファイルに現在の問題がすべて記録されます。現在の問題のセットは、ベースラインと呼ばれます。他のユーザーと共有する場合は、lint-baseline.xml ファイルをバージョン管理にチェックインできます。

ベースラインをカスタマイズする

特定の問題タイプのみをベースラインに追加する場合は、プロジェクトの build.gradle ファイルを次のように編集して、追加する問題を指定します。

Kotlin

android {
    lint {
        checkOnly += "NewApi" + "HandlerLeak"
        baseline = file("lint-baseline.xml")
    }
}

Groovy

android {
    lintOptions {
        checkOnly 'NewApi', 'HandlerLeak'
        baseline file("lint-baseline.xml")
    }
}

ベースラインを作成した後に新しい警告をコードベースに追加すると、lint は新しく導入されたバグのみをリストします。

ベースライン警告

ベースラインが有効になっている場合、ベースラインにリストされているため 1 つ以上の問題が除外されたことを示す情報警告が表示されます。この警告は、ベースラインを構成したことと、いずれかの時点で問題をすべて修正する必要があることを思い出させるのに役立ちます。

この情報警告は、報告されなくなった問題も追跡します。この情報により、実際に問題を修正できたかどうかを確認できます。必要に応じて、ベースラインを再作成して、エラーが検出されずに再発するのを防ぐことができます。

注: IDE でバッチモードで検査を実行すると、ベースラインが有効になりますが、ファイルを編集するときにバックグラウンドで実行されるエディタ内チェックでは無視されます。これは、ベースラインが、コードベースに多数の既存の警告があるが、コードを操作する際に問題をローカルで修正したい場合を想定しているためです。

インスペクションを手動で実行する

構成済みの lint やその他の IDE インスペクションを手動で実行するには、[Code] > [Inspect Code] を選択します。インスペクションの結果は [Inspection Results] ウィンドウに表示されます。

インスペクションのスコープとプロファイルを設定する

分析するファイル(検査のスコープ)と実行する検査(検査のプロファイル)を次のように選択します。

  1. [Android] ビューでプロジェクトを開き、分析するプロジェクト、フォルダ、またはファイルを選択します。
  2. メニューバーで、[Code] > [Inspect Code] を選択します。
  3. [Specify Inspection Scope] ダイアログで、設定を確認します。

    インスペクション スコープの設定を確認する
    図 3. 検査範囲の設定を確認します。

    [Specify Inspection Scope] ダイアログに表示されるオプションは、プロジェクト、フォルダ、ファイルのどれを選択したかによって異なります。

    • プロジェクト、ファイル、ディレクトリのいずれかを選択すると、[Specify Inspection Scope] ダイアログに、選択したプロジェクト、ファイル、ディレクトリのパスが表示されます。
    • 複数のプロジェクト、ファイル、ディレクトリを選択すると、[Specify Inspection Scope] ダイアログに [Selected files] のラジオボタンが選択された状態で表示されます。

    検査対象を変更するには、他のラジオボタンのいずれかを選択します。[検査範囲の指定] ダイアログで使用可能なすべてのフィールドの説明については、[検査範囲の指定] ダイアログをご覧ください。

  4. [Inspection profile] で、使用するプロファイルを選択します。
  5. [OK] をクリックして検査を実行します。

    図 4 は、[Inspect Code] から実行した lint および他の IDE インスペクションの結果を示しています。

    問題を選択して解決策を表示します。
    図 4. 検査の結果。問題を選択すると、解決策が表示されます。
  6. [インスペクション結果] ペインで、エラーのカテゴリ、タイプ、問題を展開して選択し、インスペクション結果を表示します。

    [インスペクション レポート] ペインには、[インスペクション結果] ペインで選択したエラーのカテゴリ、タイプ、または問題のインスペクション レポートが表示され、エラーの名前と場所が示されます。該当する場合、検査レポートには、問題の解決に役立つ問題の概要などの情報が表示されます。

  7. [インスペクション結果] ペインのツリービューで、カテゴリ、タイプ、または問題を右クリックして、コンテキスト メニューを表示します。

    状況に応じて、次の操作を行うことができます。

    • ソースにジャンプします。
    • 選択したアイテムを除外または含めます。
    • 問題を抑制する。
    • 設定を編集します。
    • 検査アラートを管理します。
    • 検査を再実行します。

ツールバー ボタン、コンテキスト メニュー項目、検査レポートの各項目の説明については、 検査結果ツール ウィンドウをご覧ください。

カスタム スコープを使用する

Android Studio に用意されているカスタム スコープのいずれかを使用する手順は次のとおりです。

  1. [Specify Inspection Scope] ダイアログで、[Custom scope] を選択します。
  2. [Custom scope] リストをクリックして、オプションを表示します。

    使用する検査スコープを選択する
    図 5. 使用するカスタム スコープを選択します。
    • すべての場所: すべてのファイル。
    • プロジェクト ファイル: 現在のプロジェクト内のすべてのファイル。
    • Project Source Files: 現在のプロジェクトのソースファイルのみ。
    • [Project Production Files]: 現在のプロジェクト内の製品版ファイルのみ。
    • [Project Test Files]: 現在のプロジェクト内のテストファイルのみ。
    • Scratches and Consoles: 現在のプロジェクトで開いているスクラッチ ファイルとコンソールのみ。
    • 最近閲覧したファイル: 現在のプロジェクトで最近閲覧したファイルのみ。
    • [Current File]: 現在のプロジェクト内の現在のファイルのみ。1 つのファイルまたはフォルダを選択している場合にのみ表示されます。
    • 選択したディレクトリ: 現在のプロジェクトの現在のフォルダのみ。フォルダを選択している場合にのみ表示されます。
    • [Class Hierarchy]: このオプションを選択して [OK] をクリックすると、現在のプロジェクト内のすべてのクラスを示すダイアログが開きます。ダイアログで、[Search by Name] フィールドを使用して、検査するクラスをフィルタして選択します。クラスリストをフィルタしない場合、コード検査はすべてのクラスを検査します。
  3. プロジェクトに VCS が構成されている場合は、変更されたファイルのみを検索対象に絞り込むオプションもあります。

  4. [OK] をクリックします。

カスタム スコープを作成する

使用可能なカスタム スコープでカバーされていないファイルとディレクトリの選択を検査する場合は、カスタム スコープを作成できます。

  1. [Specify Inspection Scope] ダイアログで、[Custom scope] を選択します。
  2. [カスタム スコープ] リストの横にあるその他アイコンをクリックします。

    [検査範囲の指定] ダイアログ
    図 6. [Specify Inspection Scope] ダイアログ。

    [Scopes] ダイアログが表示されます。

    カスタム スコープを作成する
    図 7. カスタム スコープを作成します。
  3. ダイアログの左上にある ボタンをクリックして、新しいスコープを定義します。
  4. 表示された [スコープを追加] リストで、[ローカル] を選択します。

    プロジェクト内では、ローカル スコープと共有スコープの両方がコード インスペクション機能に使用されます。共有スコープは、スコープ フィールドを含む他のプロジェクト機能でも使用できます。たとえば、[Find Usages] の設定を変更するために [Edit Settings] をクリックすると表示されるダイアログには、共有スコープを選択できる [Scope] フィールドがあります。

    [Find Usages] ダイアログで共有スコープを選択する
    図 8. [使用箇所を検索] ダイアログで共有スコープを選択します。
  5. スコープに名前を付けて、[OK] をクリックします。

    [スコープ] ダイアログの右側のペインに、カスタム スコープを定義するためのオプションが表示されます。

  6. リストから [プロジェクト] を選択します。

    使用可能なプロジェクトのリストが表示されます。

    注: プロジェクトまたはパッケージのカスタム スコープを作成できます。手順は同じです。

  7. プロジェクト フォルダを展開し、カスタム スコープに追加するアイテムを選択して、含めるか除外するかを選択します。

    カスタム スコープを定義する
    図 9. カスタム スコープを定義します。
    • 含める: このフォルダとそのファイルを含めますが、サブフォルダは含めません。
    • 再帰的に含める: このフォルダとそのファイル、サブフォルダとそのファイルを含めます。
    • [Exclude]: このフォルダとその中のファイルを除外しますが、サブフォルダは除外しません。
    • [Exclude Recursively]: このフォルダとその中のファイルに加えて、サブフォルダとその中のファイルを除外します。

    図 10 では、main フォルダが単独で追加され、java フォルダと res フォルダが再帰的に追加されています。青は部分的に含まれるフォルダを示し、緑は再帰的に含まれるフォルダとファイルを示します。

    カスタム スコープのパターンの例
    図 10. カスタム スコープのパターン例。
    • java フォルダを選択して [再帰的に除外] をクリックすると、java フォルダとその下のすべてのフォルダとファイルで緑色のハイライト表示が消えます。
    • 緑色でハイライト表示された MainActivity.kt ファイルを選択して [除外] をクリックすると、MainActivity.kt のハイライト表示は緑色ではなくなりますが、java フォルダ内の他のすべての項目は緑色のままになります。
  8. [OK] をクリックします。カスタム スコープがリストの一番下に表示されます。

インスペクション プロファイルを確認、編集する

Android Studio には、Android アップデートによって更新される lint およびその他のインスペクションのプロファイルが付属しています。これらのプロファイルはそのまま使用することも、名前、説明、重大度、スコープを編集することもできます。プロファイルのグループ全体またはグループ内の個々のプロファイルを有効化または無効化することも可能です。

[検査] 設定にアクセスするには:

  1. [ファイル] > [設定] を選択します。(Windows の場合)または [Android Studio] > [Preferences](macOS または Linux の場合)を選択します。
  2. [Editor] > [Inspections] を選択します。
  3. [Inspections] ペインに、サポートされているインスペクションとその説明のリストが表示されます。

    サポートされているインスペクションとその説明
    図 11. サポートされているインスペクションとその説明。
  4. [Profile] リストを選択して、[Default](Android Studio)と [Project Default](アクティブなプロジェクト)の検査を切り替えます。

    詳細については、IntelliJ のプロファイルの管理ページをご覧ください。

  5. 左ペインの [Inspections] リストで、最上位レベルのプロファイル カテゴリを選択するか、グループを展開して特定のプロファイルを選択します。

    プロファイル カテゴリを選択すると、そのカテゴリのすべての検査を 1 つの検査として編集できます。

  6. インスペクションのコピー、名前の変更、説明の追加、エクスポート、インポートを行うには、[スキーマ アクションを表示] スキーマ アクション アイコンを表示 リストを選択します。
  7. 完了したら、[OK] をクリックします。