イメージ 1

NotSupportedException
Encoding 932 data could not be found. Make sure you have correct international codeset assembly installed and enabled.


はい。
モバイルアプリ開発について私はまだまだ初心者。
先日Xamarin.Androidでアプリを書いていたところ、このような例外に遭遇しました。

結論から言うと、AndroidアプリのプロジェクトでCJKを有効にすることで解決できました。

イメージ 2

プロジェクトのプロパティから設定できます。


最初意味が理解できずにとりあえず例外発生箇所を見てみました。
コードセット932、つまりはShift JISですね。

イメージ 3

特にプログラムに問題があるよういはお見受けできません。
昔、"Shift JIS"と指定するところでコードページ番号の932を指定したところ、mono環境で例外が出たことがありまして。
それに関連する問題なのかなと思ったのですが、ちゃんとコード上ではShift JISと指定しています。

ネットで調べてみたところXamarin.iOSの情報がヒットしました。
CJK?
あまり耳にしない名前でXamarin.Androidにもあるのかと探ってみたところ、ありました。
有効にすると、アプリも落ちること無く実行できました。

一つ気になったのが、この問題、
Debugビルドでは発生しないんです。

環境によって差異があるのかはわかりませんが、当方の環境ではReleaseビルド時のみ、Encodingの初期化部でアプリが落ちてしまいました。

Javaでのアプリ開発をすっ飛ばしていきなりXamarin.Androidを始めた人間なので、まだ学ばないといけないことはたくさんあるようですね。