Xamarin Android Assets.Open抛出FileNotFound异常

时间:2014-05-13 00:12:50

标签: android xamarin

这似乎很容易,但是我不知道为什么我不能使用Assets.open方法而不会获得FileNotFound异常。

我在xamrain.com上关注了一个例子 http://docs.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/

仍然没有让它发挥作用。

我在Assets文件夹下添加了一个txt文件 将Build Action设置为" AndroidAsset" 我尝试将COpy设置为Output Diretory to" Always Copy"和"不要复制"。

无论组合是什么,我总是得到FileNotFound异常。

看起来许多开发人员也看到了问题,但我没有看到我可以尝试的答案。 感谢是否有人可以阐明这个简单的主题。

提前致谢

4 个答案:

答案 0 :(得分:1)

首先,如果没有看到您的代码,就不可能发现您可能错过的任何错误。很容易错过文件名问题或其他可能不那么明显的问题。

尽管如此,我会尽力给你一些指示。

'复制到输出目录'设置对Android资源并不重要。 AndroidAsset的构建操作将确保该文件包含在应用程序包中,允许您使用Assets.Open()加载它。

要确认这一点,请查看bin / debug或bin / release文件夹中已编译的.apk文件。 .apk文件只是一个存档,因此您可以使用winrar或7-zip打开它,或者将其重命名为.zip,Windows将打开它。

如果文件位于assets文件夹中,则代码可能存在问题。你应该在你的问题中发布它。如果文件不在那里,请尝试清理项目,或删除bin文件夹以强制重新构建和重新打包。

答案 1 :(得分:0)

之前我遇到过这个问题,我终于在我的目录资产中发现了一个图像文件/由中文字符命名,因此资产中的图像没有以正确的方式加载。

我猜你应该查看文件名是否编码错误。

答案 2 :(得分:0)

您应该只使用小写尝试名称文件。有时android将名称转换为较低的偶数文件包含大写。

答案 3 :(得分:0)

检查文件的属性。我不得不设置" Build Action"到AndroidAsset,之后它运行正常。