NDK と CMake のインストールと設定

アプリ用のネイティブ コードをコンパイルおよびデバッグするには、次のコンポーネントが必要です。

  • Android Native Development Kit(NDK): Android で C / C++ コードを使用できるようにするツールのセット。
  • CMake: Gradle と連携してネイティブ ライブラリをビルドする外部ビルドツール。ndk-build のみを使用する予定の場合は、このコンポーネントは不要です。
  • LLDB: Android Studio でネイティブ コードをデバッグする際に使用するデバッガ。デフォルトでは、LLDB は Android Studio とともにインストールされます。

このページでは、上記コンポーネントを自動的にインストールする方法と、Android Studio または sdkmanager ツールを使用して、これらのコンポーネントのダウンロードとインストールを手動で行う方法について説明します。

NDK と CMake を自動的にインストールする

Android Gradle プラグイン 4.2.0 以降では、プロジェクトの初回ビルド時に、必要な NDK と CMake のライセンスに同意していれば、これらを自動的にインストールできます。ライセンス条項を確認して同意している場合は、スクリプトで次のコマンドを使用して事前にライセンスに同意できます。

   yes | ${sdk}/cmdline-tools/latest/bin/sdkmanager --licenses

NDK と CMake をインストールする

NDK をインストールする際には、Android Studio により利用可能な最新の NDK が選択されます。ほとんどのプロジェクトでは、このデフォルト バージョンの NDK をインストールすれば十分です。プロジェクトで 1 つ以上の特定バージョンの NDK が必要な場合は、特定バージョンをダウンロードして構成することができます。そうすれば、異なるバージョンの NDK に依存する複数のプロジェクトの間で再現可能なビルドを確実に実行できます。Android Studio は、すべてのバージョンの NDK を android-sdk/ndk/ ディレクトリにインストールします。

CMake とデフォルトの NDK を Android Studio でインストールするには:

  1. プロジェクトを開いて、[Tools] > [SDK Manager] をクリックします。

  2. [SDK Tools] タブをクリックします。

  3. [NDK (Side by side)] と [CMake] のチェックボックスをオンにします。

    SDK Manager の画像 図 1: [NDK (Side by side)] オプションが表示された [SDK Tools] ウィンドウ

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

    ダイアログ ボックスに、この NDK パッケージで消費されるディスク容量が表示されます。

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

  6. インストールが完了したら、[Finish] をクリックします。

  7. プロジェクトによって自動的にビルドファイルが同期され、ビルドが実行されます。エラーが発生した場合は解決します。

特定バージョンの CMake を構成する

SDK Manager には、CMake の 3.6.0 フォーク バージョンとバージョン 3.10.2 が含まれています。特定バージョンの CMake を設定していないプロジェクトは、CMake 3.10.2 でビルドされます。CMake のバージョンを設定するには、モジュールの build.gradle ファイルに以下の行を追加します。

Groovy

android {
    ...
    externalNativeBuild {
        cmake {
            ...
            version "cmake-version"
        }
    }
}

Kotlin

android {
    ...
    externalNativeBuild {
        cmake {
            ...
            version = "cmake-version"
        }
    }
}

SDK Manager に含まれていない CMake バージョンを使用するには、次の手順を行います。

  1. CMake の公式ウェブサイトから CMake をダウンロードしてインストールします。
  2. Gradle で使用する CMake バージョンをモジュールの build.gradle ファイルで指定します。
  3. CMake のインストール パスを PATH 環境変数に追加するか、次に示すようにプロジェクトの local.properties ファイルに含めます。build.gradle ファイルで指定した CMake バージョンを Gradle が見つけられない場合は、ビルドエラーになります。

    # If you set this property, Gradle no longer uses PATH to find CMake.
    cmake.dir = "path-to-cmake"</pre>
    
  4. Ninja ビルドシステムをワークステーションにまだインストールしていない場合は、Ninja の公式ウェブサイトにアクセスして、使用している OS に対応する最新版の Ninja をダウンロードしてインストールします。また、Ninja のインストール パスを PATH 環境変数に追加します。

特定バージョンの NDK をインストールする

特定バージョンの NDK をインストールする方法は次のとおりです。

  1. プロジェクトを開いて、[Tools] > [SDK Manager] をクリックします。

  2. [SDK Tools] タブをクリックします。

  3. [Show Package Details] チェックボックスをオンにします。

  4. [NDK (Side by side)] チェックボックスと、その下にある、インストールする NDK のバージョンに対応するチェックボックスをオンにします。Android Studio は、すべてのバージョンの NDK を android-sdk/ndk/ ディレクトリにインストールします。

    [SDK Tools] ウィンドウの画像 図 2: [NDK (Side by side)] オプションが表示された [SDK Tools] ウィンドウ

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

    ダイアログ ボックスに、NDK パッケージで消費されるディスク容量が表示されます。

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

  7. インストールが完了したら、[Finish] をクリックします。

  8. プロジェクトによって自動的にビルドファイルが同期され、ビルドが実行されます。エラーが発生した場合は解決します。

  9. 使用するバージョンの NDK で各モジュールを構成します。Android Studio 3.6 以上を使用しているときは、バージョンを指定しなかった場合、Android Gradle プラグインは互換性があることがわかっているバージョンを選択します。

プロジェクトで特定バージョンの NDK を構成する

次のいずれかに当てはまる場合は、プロジェクトで NDK のバージョンを構成する必要があります。

  • プロジェクトが継承されており、NDK の特定バージョンと Android Gradle プラグイン(AGP)を使用する必要がある場合。詳細については、Android Gradle プラグイン用の NDK を構成するをご覧ください。
  • 複数のバージョンの NDK をインストールしていて、特定バージョンを使用したい場合。この場合は、次のコードサンプルに示すように、モジュールの build.gradle ファイル内の android.ndkVersion プロパティを使用してバージョンを指定します。

    Groovy

    android {
        ndkVersion "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
    }

    Kotlin

    android {
        ndkVersion = "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
    }

AGP バージョンごとのデフォルト NDK バージョン

リリース前に、各 AGP バージョンは、その時点で最新の安定版 NDK リリースで徹底的にテストされます。build.gradle ファイルで NDK バージョンを指定しない場合は、この NDK バージョンがプロジェクトのビルドに使用されます。AGP のバージョン別のデフォルトの NDK バージョンは、AGP リリースノートAGP の過去のリリースノートに記載されています。