【问题标题】:Xamarin Android assets folder not updating when building the solution构建解决方案时 Xamarin Android 资产文件夹未更新
【发布时间】:2017-11-25 14:29:43
【问题描述】:

我有一个需要从 json 文件读取数据的 Xamarin.Forms 应用程序。我将文件放入 Android assets 文件夹并选择了构建操作 AndroidAssets

然后我尝试使用 Assets.Open(filename) 在 MainActivity 中加载文件,然后我得到一个 FileNotFoundException。我删除了 Android 和 PCL bin 文件夹并尝试再次构建项目,但得到了相同的结果。然后我在 WinRar 中打开 .apk 文件,当我转到 assets 文件夹时,我添加到项目中的文件不在那里。

有人知道这里有什么问题吗?

【问题讨论】:

  • 这很奇怪,它应该可以工作。请注意,当您使用Assets.Open()方法时,您需要使用全名,例如:Assets.Open("test.txt"),您可以阅读此document
  • 我确实使用了 Assets.Open("test.txt") 但我仍然收到文件未找到错误。最奇怪的是,即使我将文件的构建操作设置为 AndroidAsset,它也不会在成功构建应用程序后出现在 .apk 文件中。所以我明白为什么它找不到文件,但我不明白的是为什么文件在构建后不在它应该在的位置。
  • 你介意分享一个基本的演示来重现这个问题吗?以确保我们正在验证您正在使用的完全相同的东西。
  • 我尝试从 Assets 文件夹中删除除 test.txt 之外的所有其他文件,并多次重建项目,现在我收到一条错误消息:文件“obj\Debug\android\bin\packaged_resources”不存在。除了删除 Assets 文件夹中的一些文件外,我没有对代码或任何其他文件进行任何更改。那是怎么回事?
  • 请将你的finderro-line-no-bg.png文件重命名为finderro_line_no_bg.png,你不能在android资源文件中使用“-”字符,然后它可以正常工作,我可以看到“test.txt”文件在.apk 文件中。

标签: android xamarin xamarin.forms xamarin.android


【解决方案1】:

您是否从文件属性中将文件设置为嵌入资源?

如果没有,请右键单击文件 -> 属性 -> 在构建操作中设置为嵌入式资源

【讨论】:

  • 我将文件设置为 AndroidAssets 而不是您在图片中看到的嵌入式资源。这不应该适用于Android应用程序吗?我尝试按照您的建议将它们更改为嵌入式资源,但没有任何区别。
【解决方案2】:

问题在于在资源文件名中使用“-”字符。按照 York Shen 的建议进行了更改,它开始按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 2011-09-09
    • 2015-02-08
    • 2012-12-24
    • 2021-08-29
    • 1970-01-01
    相关资源
    最近更新 更多