6

Monodroid アプリで DotNetZip ライブラリを使用しようとしています。Shared Runtime ビルド オプションを有効にすると、すべて正常に動作するように見えます。共有ランタイムを無効にすると、行

static System.Text.Encoding ibm437 = System.Text.Encoding.GetEncoding("IBM437");

例外を生成します (エンコード名 'IBM437' はサポートされていません)。「サポートされている追加のエンコード」リストのすべてのボックスをチェックしましたが、役に立たないようです。誰にもアイデアはありますか?

4

1 に答える 1

11

私はまったく同じ問題を抱えていました。

まず、プロジェクトのプロパティに "West" エンコーディングを追加したことを確認してください。

Xamarin の国際化

それでもうまくいかない場合は、必要な dll が .apk のアセンブリ フォルダーにコピーされていないことが問題です。これは自動的に行われるはずですが、そうではありません。バグを報告したので、修正されたかどうかを確認できます。

Mono for Android / Xamarin Bugzilla

そうでない場合、これが私のために働いた回避策です(Xamarinから):

  1. I18N.dll および I18N.West.dll への参照を手動で追加する
  2. 両方の DLL の「Copy Local」プロパティを「true」に設定します。
  3. 次のダミー コードを追加して、2 つの dll を .apk に追加します。

    var ignore = 新しい I18N.West.CP437();

  4. 「リンク」が「なし」に設定されていることを確認してください

お役に立てれば!

于 2012-09-28T23:13:05.663 に答える