私はFlutterでアプリを開発しているのですが、依存するライブラリがC/C++のコードを含んでおり、Android向けのビルドではCMakeのバージョンも指定されていました。Android Studioで該当バージョンのCMakeをインストールしてもエラーでビルドできなかったため独自にインストールして対応しました。1
私がAndroidのネイティブ周りに明るくないこともあり手こずったのでメモしておきます。
環境
- macOS 11.6
- Android Studio 4.1.1
Androidのdevelopersサイト
CMakeのインストール方法について公式の開発者向けサイトにも以下のような記述があります。
- CMake の公式ウェブサイトから CMake をダウンロードしてインストールします。
- Gradle で使用する CMake バージョンをモジュールの build.gradle ファイルで指定します。
- CMake のインストール パスを PATH 環境変数に追加するか、次に示すようにプロジェクトの local.properties ファイルに含めます。build.gradle ファイルで指定した CMake バージョンを Gradle が見つけられない場合は、ビルドエラーになります。
この記事はこれの補足的な情報になります。
手順
今回はCMakeのバージョン3.18.1を利用する例として記述しています。
CMakeのインストール
- GitHubのページ から該当するバージョンのCMakeを探してダウンロードします。
- macでは.dmgをダウンロード。開くとCMakeのアプリが出てくるのでApplicationフォルダへ移動。
build.gradleにCMakeバージョンを記述
私の場合は利用するライブラリ側に記述があったので不要でしたが、自分で設定する場合は以下のような記述が必要です。
externalNativeBuild {
cmake {
version '3.18.1'
path 'src/main/cpp/CMakeLists.txt'
}
}
プロジェクトの local.propertiesファイルにCMakeのパスを設定
cmakeが入っているのは /Applications/CMake.app/Contents/bin
の中なのですが、ここで指定するパスはbinフォルダの親のContentsまでを指定する必要があります。
cmake.dir=/Applications/CMake.app/Contents
以上でビルドができるようになるかと思います。
-
Android StudioのSDK Managerからcmake 3.18.1をインストールしてビルドすると
Invalid revision: 3.18.1-g262b901
というエラーが出てビルドができなかった。 ↩