こんにちは、エンジニアのオオバです。
Android向け開発中のトラブルは絶えません。
- ビルドができない
- 実機に転送できない
- ビルド時コンパイルに失敗する
などなど。中でもトラブル頻度第1位は「ビルドトラブル」です。
今回紹介するトラブルはコチラ。
JDK not found と NDK not found
このようなエラーログが出るパターン。
JDK not found
Java Development Kit (JDK) directory is not
set or invalid. Please, fix it in
Edit / Unity -> Preferences -> External Tools
Android NDK not found
Android NDK not found or invalid. Please, fix it in Edit / Unity -> Preferences -> External Tools
このエラーはJDKまたはNDKが見つからなくてビルドに失敗しているということを指しています。
新しいUnityエディタをインストールしたときによく起きるエラーです。
そこで本記事ではAndroidビルドで必要なJDK、NDKを正しくインストールし、ビルドを成功させる方法を紹介していきます。
Androidビルドで失敗しちゃって開発が滞ってしまっている方はぜひ読んでみてください。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
Androidビルドに必要なJDK、NDKとは?
そもそもAndroidビルドに必要なJDKとNDKとは何なのでしょうか。
JDKとは
JDKとは Java Development Kit の略でJavaという言語でアプリを開発・実行するために必要なツール一式が格納されています。
- Javaのコンパイラ
- Javaの実行環境
- デバッガやドキュメント作成ツール
など。
Androidをビルドする際、ビルドスクリプトなどはJavaで実装されているためJDKが必要というわけです
NDKとは
NDKとは Native Development Kit の略で、CやC++ などのネイティブコード(機械語に近いコード) をAndroidアプリに組み込むための開発キットです。
- C/C++用のコンパイラ(clangなど)
- Android用の標準ライブラリ
- Android向けヘッダーファイルやビルドツール
などが格納されています。
UnityのIL2CPPやプラグインにはC++で書かれた処理が含まれています。
それをAndroid上で動かすにはNDKを使ってをビルドする必要があるためNDKが必要なのです。
とはいえmonoビルドの場合はNDKは不要です。あくまでIL2CPPを使用した場合に必要ということです。
しかしGoogle Playの要件として 64bit対応が必須 となっている現在32bitしか対応していないmonoビルドを使う理由はありません。
したがって IL2CPPビルド一択 であり NDKも必須 ということになります。
JDK、NDKはバージョンが重要
UnityのAndroidビルド向けに必要なJDKとNDKはバージョンが非常に重要です。一昔前のUnityエディタではJDKとNDKのバージョンが合わず、ビルドするにも一苦労な時代がありました。
- Unityのバージョン
- JDKのバージョン
- NDKのバージョン
Unityのバージョンを変えるたびに残り2つのバージョンも調整する必要があったというわけです。
後述しますが執筆時現在、バージョン問題は解決しています。
Unityバージョンに合うJDKとNDKをインストールする方法
ここからが本題で、あなたのUnityバージョンに合うJDKとNDKをインストールする方法を紹介していきます。
結論からお伝えするとAndroidビルドに必要なJDKとNDKはUnityHubからインストールすれば大丈夫です。
モジュールを追加する画面で、以下3つにチェックをいれてインストールします。
- Android Build Support
- OpenJDK
- Android SDK & NDK Tools
以上で JDK not found はと NDK not found エラーは解決します。
Unity Hub経由 でインストールしたJDKとNDKは バージョン問題も解決している ということです。
バージョンのことは何も考えずUnity Hubからインストールすれば問題なくビルドできるようになるため、ぜひ活用してみてください。
詳しいモジュールの追加方法はこちらの記事を参考にどうぞ。

【Unity】モジュールの追加方法
Unityの中にはモジュール単位で分けられた機能があります。iOS向け、Android向けゲームを作りたい場合はビルドサポートモジュールが必要です。本記事では初...
手動でJDKとNDKを導入する場合
もちろんあなたのUnityエディタに個別のJDKとNDKを導入することも可能です。
JDKよNDKにはいくつもバージョンが存在します。それらをパソコンにインストールしパスを通せば動作します。
パスの通し方は Unityメニュー -> Settings
のPreferencesウィンドウから行います。
「External Tools」からJDK、NDKのチェックを 外して パスをセットします。
しかしおすすめはUnity Hub経由のバージョンです。とにかくちょっとしたバージョン違いでAndroidビルドができなくなるためです。
Androidビルドが何かおかしいときはPreferencesをチェック
Androidビルドエラーもいろんな種類があるため、一概に言えませんが、JDK、NDK周りのエラーの場合、まず確認したいのはPreferencesです。
メニューUnity -> Settings
からPreferencesウィンドウを開き、External Toolsを確認します。
Androidセクション周りで警告やエラーが起きていないかを確認しましょう。特にJDKとNDKのチェックが外れていたり、そもそもJDKとNDKをインストールしていない場合などが考えられます。
その他にもさまざまなエラーが考えられるのでこちらの記事を参考にチェックしてみてください。
Androidビルドで必要なJDK、NDKまとめ
本記事ではAndroidビルドで必要なJDKとNDKについて解説してきました。記事の内容を簡単にまとめます。
①JDKはJavaの開発ツール
②NDKはIL2CPPビルド時に使用(monoビルドでは不要)
③JDK、NDKともにバージョンが重要
④Unity Hub経由ならバージョン問題は解決
こんな感じです。
結論UnityでAndroidビルドする場合はUnity Hub経由でJDK、NDKどちらもインストールしておきましょうということです。
そうすると問題になりがちなバージョンやビルドエラーに悩まされることがなくなります。
ビルドエラーは本当に消費しがちな無駄な時間です。過去にビルドエラーでハマりにハマって結局諦めたこともあります。ぜひ正しい知識を入れて時間を有効活用していきましょう。
本記事があなたのゲーム開発を前に進めるきっかけになったらうれしいです。

筆者のXをフォローしよう
Unityオブジェクトの描画順の制御って難しいですよね。
この度、Unityの描画順を体系的に学べる「Unity描画順の教科書」を執筆しました。
Unityの描画順を基礎から学びたい方はぜひ確認してみてください!
→ Unity描画順の教科書
最後まで読んでいただきありがとうございました!
すばらしいAndroidビルドライフをお過ごしください。
- Unity6000.0.32f1