メインコンテンツへスキップ
【保存版】Flutter「NDK version」エラー完全解決ガイド|NDK not configured・ndkVersion設定も解説
  1. Posts/

【保存版】Flutter「NDK version」エラー完全解決ガイド|NDK not configured・ndkVersion設定も解説

Flutter Android Flutter NDK Android ビルドエラー 開発トラブル エラー解決
目次

はじめに:Flutterで「NDK version」エラーが発生する原因とは?
#

FlutterのNDKバージョンエラーに関する記事
FlutterでAndroidビルドを行う際、

No version of NDK matched the requested version
NDK not configured.

このような「NDK version」関連のエラーは、主に Android のネイティブ開発キット(Android NDK)のバージョン不一致や設定漏れが原因です。Flutter プロジェクトでは Dart コードが中心ですが、Android 側で C/C++ を利用するプラグインやネイティブコードがあると、NDK が関わってきます。

本記事では、

  • エラーの原因
  • 確認方法
  • 正しい設定手順
  • よくある失敗とその対策
  • FAQ(よくある質問)
    といった流れで、初心者〜中級者の方にもわかりやすく「完全解決ガイド」としてまとめました。

FlutterでNDKとは?NDK versionエラーの原因を理解しよう
#

Android NDK の概要と役割
#

Android NDK(Native Development Kit)は、Android アプリ内で C/C++ ネイティブコードを使用できる開発キットです。Flutter 自体は Dart で動作しますが、

  • 一部の Flutter プラグインがネイティブライブラリを使っていたり、
  • Android 側の SDK 内でネイティブコード参照があったり、
    といったケースで NDK が関係します。

正しく設定されていないと、ビルド時に Android 側で “NDK not configured” や “No version of NDK matched the requested version” といったエラーが出やすくなります。

Flutterプロジェクトにおける NDKの利用場面
#

例えば、次のような場面で NDK が必要になることがあります:

  • 画像/音声処理系のプラグイン(例:ffmpeg、tflite 等)
  • Android のネイティブ API 呼び出しを Flutter からラップしているプラグイン
  • 既存の Android ライブラリを Flutter プロジェクト内で再利用している場合

このため、Flutter アプリをAndroidでリリースしたり、ネイティブライブラリを多用する場合には、NDKのバージョン・設定が重要になります。


FlutterのNDK versionエラー例と原因を徹底解説
#

エラー例①:No version of NDK matched the requested version
#

No version of NDK matched the requested version 21.4.7075529

このエラーは、android/app/build.gradle 内で指定された ndkVersion が、ローカルにインストールされていないバージョンであることが原因です。

エラー例②:NDK not configured. Download it with SDK Manager.
#

NDK not configured. Download it with SDK Manager.

このエラーは、Android SDK Manager で NDK がインストールされていない、または設定が通っていない場合に発生します。

エラー例③:One or more plugins require a higher Android NDK version
#

Your project is configured with Android NDK 26.xxx…, but the following plugin(s) depend on a different Android NDK version:

path_provider_android requires Android NDK 27.0.12077973
Fix this issue by using the highest Android NDK version (they are backward compatible).
Add the following to android/app/build.gradle.kts:
ndkVersion = "27.0.12077973"

このエラーは、プロジェクトの NDK バージョンと使用中プラグインが要求する NDK バージョンが異なっているため発生します。


FlutterでNDK versionを確認・設定する方法
#

Android Studioでの確認方法
#

  1. Android Studio を起動
  2. メニューから Preferences/Settings → Appearance & Behavior → System Settings → Android SDK を選択
  3. 「SDK Tools」タブを開き、「NDK (Side by side)」欄を探す
  4. 「Show Package Details」にチェックを入れ、インストール済みの NDK バージョンを確認

この画面で表示されたバージョンが、実際にローカル環境で利用可能な NDK です。

コマンドラインでの確認方法
#

macOS/Linux:

ls ~/Library/Android/sdk/ndk/

Windows:

dir "C:\Users\<ユーザー名>\AppData\Local\Android\Sdk\ndk"

このフォルダ内に複数バージョンがあれば、どの NDK がインストールされているか確認できます。

推奨 NDK バージョン(2025年版)
#

多くの Flutter プロジェクト・プラグインで「NDK 27.0.xxxx」が推奨されており、逆にそれより低いバージョンだとプラグインの要求に応えられない事例が増えています。 community.esri.com

例:Flutter 3.29 以上では NDK 27.0.12077973 が最低でも推奨とする声があります。 このため、プロジェクト側では ndkVersion をこのあたりに合わせておくと、トラブルが少なくなります。

Flutterプロジェクトでの正しい ndkVersion 設定手順
#

build.gradle における指定例
#

android/app/build.gradle の android ブロック内に以下のように記述します(Groovy形式):

android {
    compileSdkVersion 34

    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 24
        targetSdkVersion 34
        versionCode 1
        versionName "1.0"
    }

    // ここで NDK バージョンを固定する
    ndkVersion "27.0.12077973"
}

Kotlin DSL (build.gradle.kts) を使用している場合は次のようになります:

android {
    compileSdk = 34

    defaultConfig {
        applicationId = "com.example.myapp"
        minSdk = 24
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"
    }

    ndkVersion = "27.0.12077973"
}

ndkVersion を固定する利点と注意点
#

利点:

  • チーム開発でビルド環境を統一しやすくなる

  • CI/CD 環境でビルドが安定する

  • プラグイン側が要求する NDK バージョンとずれた時のエラーを未然に防げる

Flutter や Android Gradle Plugin が更新された際に、推奨 NDK バージョンが変わることがあるため、定期的にバージョンを見直す必要があります。

インストール済みでないバージョンを指定すると、逆に「バージョンが見つからない」エラーが出るため、必ずローカルにそのバージョンが存在していることを確認してください。

Android Studioで NDK をインストール・更新する手順
#

手順概要
#

Android Studio を起動

メニューから Tools → SDK Manager を選択

「SDK Tools」タブをクリック

「NDK (Side by side)」にチェックを入れ、必要に応じて「Show Package Details」でバージョンを選択・インストール

「Apply」→「OK」でインストールを実行

インストール完了後、ターミナルから flutter doctor -v を実行して異常がないか確認

この手順で最新・必要な NDK バージョンを導入できます。

Flutter NDK versionエラーが直らない時のチェックリスト
#

エラー:Flutter が古い NDK を参照している
#

現象: flutter.ndkVersion を使っていて、プロジェクトが古いバージョンを参照してしまっている。例えば ndkVersion flutter.ndkVersion のまま、プラグインが要求するバージョンに至っていない。

対策: android/app/build.gradle 内で明示的にバージョンを指定する(例:ndkVersion “27.0.12077973”)ことで解決します。

エラー:「NDK not found」
#

現象: NDK がインストールされていない、または SDK のパス設定が正しくない。 対策: Android Studio の SDK Tools から NDK をインストールした後、local.properties に ndk.dir を指定する例もありますが、一般的には SDK Manager からインストールして build.gradle で ndkVersion を明示しておくことが有効です。

エラー:「NDK version mismatch」
#

現象: プラグインが要求する NDK バージョンと、プロジェクトで使用しているバージョンが異なっており、ビルドが失敗する。

対策: プラグインが要求しているバージョンを確認し、それ以上のバージョンを ndkVersion に指定し、プロジェクト全体で統一しておくのがベストです。

最終手段:これでも直らない時のチェックリスト
#

まずはflutter clean を実行し、キャッシュをクリアします。

flutter clean
flutter pub get

上記コマンドを実行後、Android Studio を再起動してください。

その後、Android SDK / NDK の状態を下記flutter doctorコマンドで確認します。

flutter doctor -v

android/local.properties や android/gradle.properties に誤ったndk.dir設定が残っていないか確認

他のモジュール(サブプロジェクト)でndkVersionが異なって指定されていないか確認してください。

必要なら afterEvaluate ブロックで強制統一も可能です。

Flutter NDK versionに関するFAQ(よくある質問)
#

Q1. Flutterで「NDK version」エラーが出る主な原因は?
#

A. 主な原因は、Flutterのビルド設定で指定されたNDKバージョンと、実際にAndroid SDKにインストールされているNDKのバージョンが一致していないことです。


Q2. ndkVersionはどこで設定すればいいですか?
#

A. android/app/build.gradleandroid ブロック内に指定します。推奨は ndkVersion "27.0.12077973" など明示的なバージョン指定です。


Q3. 「NDK not configured」エラーの解決方法は?
#

A. Android Studioで「NDK (Side by side)」を有効化してNDKをインストールし、再ビルドすることで解決します。

Flutterおすすめ関連記事
#

👉 関連記事もおすすめです

Flutterの使い方完全ガイド|初心者でも簡単にアプリ開発を始める方法
Flutter アプリ開発 プログラミング チュートリアル Flutter Dart アプリ開発 モバイルアプリ クロスプラットフォーム プログラミング 初心者向け 環境構築 UI開発 チュートリアル サンプルコード Flutter入門 開発ガイド
Flutterの始め方完全ガイド|初心者が最初に知るべき環境構築と基本操作
これからFlutterを学びたい方に最適!インストール方法から最初のアプリ作成まで、初心者でも迷わない手順を解説しています。


Flutter + Rust: 最強のモバイルアプリ開発スタック | ゼロから始めるハイパフォーマンスUI
Flutter Rust モバイル開発 アプリ開発 プログラミング Flutter Rust モバイル開発 クロスプラットフォーム FFI ハイパフォーマンス Flutter FFI Rust FFI Flutter Rust 連携 Flutter アプリ開発 Dart Flutter 初心者 ネイティブ開発 モバイルパフォーマンス Flutter Rust チュートリアル
Flutter×Rustで実現する高速モバイルアプリ開発スタック
FlutterとRustを組み合わせた最新モバイル開発の流れを紹介。パフォーマンスと安全性を両立した構成を実例付きで解説します。


Flutter SDK完全ガイド|インストール方法・環境構築・基本コマンド徹底解説
Flutter開発 環境構築 SDK解説 Flutter Flutter SDK インストール 環境構築 アプリ開発 初心者向け Windows Mac Linux コマンドライン セットアップ 開発環境
Flutter SDKの徹底ガイド|導入からアップデート方法まで詳しく解説
Flutter SDKの仕組み、バージョン管理、アップデート時の注意点を網羅。安定した開発環境を構築したい方は必見です。

関連記事

Flutter案件の探し方完全ガイド|未経験から高単価案件を獲得する方法
Flutter フリーランス 副業 エンジニアキャリア Flutter 案件 フリーランス 副業 アプリ開発 プログラミング リモートワーク 高単価案件 未経験エンジニア フリーランスエンジニア ポートフォリオ クラウドソーシング エージェント
【2025年版】Flutter Riverpod入門|使い方・Providerとの違い・初心者でもわかる状態管理ガイド
Flutter アプリ開発 プログラミング 状態管理 技術解説 Flutter Riverpod 状態管理 アプリ開発 Provider Dart Flutter Hooks Riverpod 2.0 StateNotifier StateProvider Flutter 初心者 Flutter アーキテクチャ コード例 MVVM クリーンアーキテクチャ
Flutter×AIアプリ開発入門|ChatGPT・画像認識・音声AIの実装ガイド
Flutter AIアプリ開発 プログラミング学習 Flutter AI アプリ開発 ChatGPT 画像認識 音声認識 人工知能 機械学習 モバイル開発 Dart Google Flutter AI連携 初心者向け