我正在尝试在我的 Monodroid 应用程序中使用 DotNetZip 库。当我启用共享运行时构建选项时,一切似乎都运行良好。当我禁用共享运行时时,行
static System.Text.Encoding ibm437 = System.Text.Encoding.GetEncoding("IBM437");
生成异常(不支持编码名称“IBM437”)。我已经检查了“其他支持的编码”列表中的每个框,但它似乎没有帮助。有人有什么想法吗?
最佳答案
我遇到了完全相同的问题。
首先,确保您已在项目属性中添加“West”编码:
如果这不起作用,问题是所需的 dll 没有被复制到 .apk 的程序集文件夹中。这应该会自动发生,但事实并非如此。我提交了一个错误,所以你可以看看它是否已修复:
Mono for Android / Xamarin Bugzilla
如果没有,这里有一个对我有用的解决方法(来自 Xamarin):
- 手动添加对 I18N.dll 和 I18N.West.dll 的引用
- 将两个 dll 的“复制本地”属性设置为“true”
添加以下虚拟代码以将 2 个 dll 添加到 .apk
var ignore = new I18N.West.CP437();
确保“链接”设置为“无”
希望这对您有所帮助!
关于c# - 当我使用非共享运行时构建 Monodroid 项目时获取编码失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10858690/