目次
Toggle.NET MAUIでAndroidアプリ開発中のエラー解決
Androidローカルデバイスを接続してビルドした際に、「エラー XA0129: ‘files/.override/Xamarin.AndroidX.Core.dll’ の展開中にエラーが発生しました。」といいエラーでビルド出来ない状態になった。
エラーの詳細は以下の通り。
「’EmbedAssembliesIntoTxt’ MSBuild プロパティを ‘true’ に設定して、Visual Studio プロジェクト プロパティ ページで高速展開を無効にするか、テキスト エディターでプロジェクト ファイルを編集してください。」
プロジェクトを新規で作成した時点で起こる現象だったので、何かコーデングに問題がある訳ではなさそうです。
結論からすると、プロジェクトのプロパティにある「高速展開を無効にする」のチェックを外すことで解決できました。
つまりXamarin.Android アプリケーション開発におけるビルドおよびデプロイメント処理に関連する特定の機能をオフにすることです。
以下に対応手順を備忘録とします。
【環境】
Microsoft Visual Studio Community 2022 (64 ビット) Version 17.9.4
.NETフレームワーク:NET8.0
手順
- Visual Studio でプロジェクトのプロパティを開く
ソリューションエクスプローラーで、対象の Android プロジェクトを右クリックします。
「プロパティ」を選択して、プロジェクトのプロパティウィンドウを開きます。 - Android オプションに移動
プロパティウィンドウの左側のメニューから「Android オプション」を選択します。 - 高速展開を無効にする
「オプション」を選択します。
高速デプロイ、高速展開を使用します。のチェックを外す。 - 変更を保存してプロジェクトをビルド
変更を保存し、プロジェクトを再ビルドします。
または、エラーメッセージが提案しているように、EmbedAssembliesIntoApk MSBuild プロパティを直接編集して高速展開を無効にすることもできます。
- プロジェクトファイル (.csproj) を編集
プロジェクトファイルを右クリックし、「テキストエディタで開く」を選択します。 - プロパティを追加
セクションを探し、次の行を追加します。
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk> - ファイルを保存してプロジェクトをビルド
変更を保存し、プロジェクトを再ビルドします。
補足
高速展開の仕組み
高速展開が有効になっている場合、Xamarin.Android はアプリケーションのアセンブリ(コードがコンパイルされた DLL ファイル)と一部のリソースを、APK(Android Package Kit)ファイルにパッケージ化するのではなく、デバイスの特定のディレクトリに直接コピーします。このプロセスにより、開発者がコードに変更を加えてデバッグセッションを再開するたびに、変更されたアセンブリのみがデバイスに転送され、全体のビルドおよびデプロイメントプロセスが速くなります。
高速展開を無効にする理由
高速展開は開発プロセスを加速する便利な機能ですが、特定のシナリオでは問題を引き起こす可能性があります。例えば、アセンブリのロード問題、リソースの不一致、またはビルドプロセスの他の複雑なエラーが発生することがあります。これらの問題は、高速展開が原因であることが多く、この機能を無効にすることで解決することがあります。
高速展開を無効にすると、ビルドプロセスは遅くなりますが、デプロイメント処理がより安定します。
以上