Androidデバイスのテスト実行時に、テスト実行設定で「端末の言語」や「端末の地域」を指定した際、「指定された言語(○○)と地域(××)の変更に失敗しました。」といったエラーメッセージが表示されることがあります。
原因
MagicPodでは内部的にAppiumを使用してAndroidデバイスの言語・地域を設定しています。Appiumは、指定された言語と地域の組み合わせが ICU (International Components for Unicode) の仕様で定義されているかどうかを検証します。定義されていない組み合わせが指定された場合、このエラーが発生します。
たとえば、日本語 (ja)は地域として日本 (JP)のみが定義されているため、日本語 (ja) × アメリカ合衆国 (US)のような組み合わせはエラーになります。同様に、英語 (en)には多くの地域が定義されていますが、英語 (en) × 日本 (JP)は定義されていないためエラーとなります。
サポートされる言語と地域の組み合わせについて
サポートされる組み合わせは、Android OSのバージョンやデバイスにインストールされているICUライブラリのバージョンに依存します。そのため、すべての環境で共通の一覧を提示することが困難ですが、一般的には以下のルールが適用されます。
- 言語と地域が実際にその言語が使用されている国・地域の組み合わせである場合にサポートされます
- 例:日本語 × 日本 (ja_JP)、英語 × アメリカ合衆国 (en_US)、フランス語 × フランス (fr_FR)
よく使われる組み合わせの例
| 言語 | サポートされる地域の例 |
| 日本語 (ja) | 日本 (JP) |
| 英語 (en) | アメリカ合衆国 (US)、イギリス (GB)、オーストラリア (AU)、カナダ (CA)、インド (IN)など多数 |
| フランス語 (fr) | フランス (FR)、カナダ (CA)、ベルギー (BE)、スイス (CH)など |
| ドイツ語 (de) | ドイツ (DE)、オーストリア (AT)、スイス (CH)など |
| 中国語 (zh) | 中国 (CN)、台湾 (TW)など |
| 韓国語 (ko) | 韓国 (KR) |
| スペイン語 (es) | スペイン (ES)、メキシコ (MX)、アルゼンチン (AR)、アメリカ合衆国 (US)など多数 |
より正確な一覧は、ICUプロジェクトの仕様を参照してください。
対処方法
エラーが発生した場合は、テスト実行設定で指定している言語と地域の組み合わせを、上記のようなサポートされている組み合わせに変更してください。