AGP 9.0.1から9.1.0へ更新した後、Navigation Componentの<nav-graph>をAndroidManifest.xmlで使用しているプロジェクトでは、通常のアプリ用ManifestではなくUnit Test用Manifestを処理するprocessDebugUnitTestManifestが「Referenced navigation file not found」で失敗することがあります。実在するNavigation Graphを探し直す前に、AGP 9.1の既知の回帰かを確認してください。
代表的なエラーログ
> Task :app:processDebugUnitTestManifest FAILED
Manifest merger failed:
Referenced navigation file not found
navigationXmlId = nav_graph
nav_graphの部分はプロジェクト内のリソース名に変わります。通常のDebug APKは処理できても、Unit Test関連タスクだけが失敗する点が重要な手掛かりです。
原因
AndroidManifest.xmlの<nav-graph android:value="@navigation/nav_graph" />は、Navigation GraphからDeep Link情報をManifestへ展開するための記述です。AGP 9.1.0ではUnit Test Manifestの処理時に、このNavigationリソースを正しく解決できない回帰があり、ファイルが存在していても未検出として扱われます。
Googleの公式修正一覧はIssue #496616822を「AGP 9.0.1 → 9.1.0の回帰」と明記し、Android Studio Panda 4 Canary 3と同時提供されたAGP 9.2.0-alpha07での修正項目として掲載しています。
発生条件・対象バージョン
- Android Gradle Plugin 9.1.0を使用している
- Manifest内で
<nav-graph>を参照している testDebugUnitTestなどに伴ってprocessDebugUnitTestManifestが実行される- AGP 9.0.1では成功していた同じプロジェクトが9.1.0で失敗する
公式に確認された修正版はAGP 9.2.0-alpha07です。安定版を使う場合はAGP 9.2.0以降を選びます。
推奨する解決手順
- AGPを9.2.0以降へ更新します。 バージョンカタログを使う場合は
gradle/libs.versions.tomlを変更します。
[versions]
agp = "9.2.0"
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
トップレベルのpluginsブロックで管理している場合は、次のように更新します。
plugins {
id("com.android.application") version "9.2.0" apply false
id("com.android.library") version "9.2.0" apply false
}
- AGP 9.2の互換性表に合わせてGradle WrapperとJDKを確認します。
- Android StudioでGradle Syncを実行します。
- 失敗していたUnit Test Manifestタスクを再実行します。
./gradlew :app:processDebugUnitTestManifest --stacktrace
./gradlew :app:testDebugUnitTest
更新できない場合の代替策
プラグイン互換性などの理由でAGP 9.2へすぐ移行できない場合は、修正を待つ間だけAGP 9.0.1へ戻す方法があります。Googleが9.0.1から9.1.0への回帰として記録しているため、原因切り分けにも有効です。
[versions]
agp = "9.0.1"
テストを無効化したりManifestから<nav-graph>を削除したりする方法は、テスト範囲やDeep Link生成を変えるため推奨しません。やむを得ず行う場合は一時措置として影響を検証してください。
確認方法
./gradlew --versionで実行環境を記録する- AGPが9.2.0以降、または一時的に9.0.1であることを確認する
:app:processDebugUnitTestManifestが成功することを確認する- Unit Test一式を実行する
- 生成されたManifestと実機/エミュレーターでDeep Linkが引き続き機能することを確認する
注意点
Navigationファイルの名前違い、別モジュールのリソース参照、source setへの配置ミスでも同じ文言が出ることがあります。AGP 9.0.1でも失敗する場合や、通常のprocessDebugMainManifestも失敗する場合は、今回の9.1回帰と断定せず、src/main/res/navigationとManifest参照を確認してください。
AGPだけを更新するとGradle、JDK、Kotlinプラグインとの互換性問題が発生する場合があります。必ず公式の互換性情報に沿って関連バージョンを揃えてください。
まとめ
AGP 9.1でprocessDebugUnitTestManifestだけが「Referenced navigation file not found」となる場合、Navigation XMLの欠落ではなく既知の回帰が疑われます。推奨策は修正済みのAGP 9.2.0以降への更新です。更新できない間は9.0.1へ戻し、通常Manifest、Unit Test、Deep Linkのすべてを確認してください。
