【问题标题】:Xamarin Android Assets.Open throws FileNotFound exceptionXamarin Android Assets.Open 引发 FileNotFound 异常
【发布时间】:2015-07-14 17:01:54
【问题描述】:

看起来很简单,但是不知道为什么我不能使用 Assets.open 方法而不得到 FileNotFound 异常。

我遵循了 xamrain.com 中的示例 http://docs.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/

仍然无法正常工作。

我在 Assets 文件夹下添加了一个 txt 文件 将构建操作设置为“AndroidAsset” 我也尝试将 COpy 设置为“输出目录”为“始终复制”和“不复制”。

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

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

提前致谢

【问题讨论】:

    标签: android xamarin


    【解决方案1】:

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

    不过,我会尝试给你一些建议。

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

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

    如果文件在 assets 文件夹中,那么您的代码可能有问题。您应该将其发布在您的问题中。如果该文件不存在,请尝试清理您的项目,或删除 bin 文件夹以强制重新构建并重新打包。

    【讨论】:

    • 谢谢,我想我成功了。老实说,不知道为什么它不能正常工作。我不得不重做代码,我现在很好。
    【解决方案2】:

    检查文件的属性。我必须将“构建操作”设置为 AndroidAsset,然后它就可以正常工作了。

    【讨论】:

      【解决方案3】:

      我之前遇到过这个问题,最后发现我的目录assets/中有一个图片文件是用汉字命名的,所以assets里的图片加载不正确。

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

      【讨论】:

        【解决方案4】:

        您应该尝试只使用小写的名称文件。有时android将名称转换为小写,甚至文件包含大写。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-10-31
          • 1970-01-01
          • 1970-01-01
          • 2019-01-29
          • 2017-12-03
          • 1970-01-01
          相关资源
          最近更新 更多