Monaca が Cordova 9.0 に対応しました。
Cordova では、ビルド時に各プラットフォームに対応したプロジェクトを使用します。
Monaca の Cordova 9.0 で使用される Android プラットフォームのバージョンは、8.0.0
が使用されています。
Android プラットフォームは、 7.0.0
から Android Studio 用プロジェクトと同じフォルダー構成に仕様が変更されました。
そのため、Monaca で提供している Cordova 9.0 と Cordova 9.0 未満では、Android プラットフォームのフォルダー構成に違いが発生します。
resource-file タグ
この Android プラットフォームの仕様変更によって注意する設定があります。
config.xml を使用して、ビルド時にリソースファイルを設定するような場合に resource-file
タグを使用します。
Cordova 9.0 未満の Monaca プロジェクトで resource-file タグを使用している場合、Cordova 9.0 へアップグレードすると、ビルド時に resource-file タグの設定が反映されなくなります。
Android Studio プロジェクトのフォルダー構成
Android Studio で使用するプロジェクトのフォルダー構成は、以下のようになっています。
ルート/app/src/main/res/
resource-file の変更方法
Cordova 9.0 未満の Monaca プロジェクトの場合、sample.png を Android プラットフォームの drawable フォルダーに配置したい場合は、以下のように設定します。
<platform name="android">
<!-- Monacaプロジェクトの res フォルダーに sample.png を配置した場合 -->
<resource-file src="/res/sample.png" target="/res/drawable/sample.png" />
</platform>
これを、Cordova 9.0 の Monaca プロジェクト用に変更する場合は、以下のようにします。
<platform name="android">
<!-- Monacaプロジェクトの res フォルダーに sample.png を配置した場合 -->
<resource-file src="/res/sample.png" target="app/src/main/res/drawable/sample.png" />
</platform>
おわりに
Monaca プロジェクトを Cordova 9.0 へアップグレードした際に、resource-file タグの設定が反映されない場合は、target の設定を確認してみてください。
今回は、drawable フォルダーを対象にしましたが、Android Studio 用のプロジェクト構成が分かれば、他のフォルダーへもファイルを設定することができます。
また、現在よく利用されるサードパーティー製 Cordova プラグインでは、この Android プラットフォームの仕様変更に対応しているものが多いので、Monaca プロジェクトを Cordova 9.0 へアップグレードしても利用可能な場合が多くなっています。
Cordova 9.0 へアップグレードした際に、サードパーティー製 Cordova プラグインのビルドが失敗する場合は、一度、最新版で対応していないか確認してみてください。