【问题标题】:Assets Confusion资产混乱
【发布时间】:2012-01-17 14:37:54
【问题描述】:

我完全糊涂了。我的项目中有一个“资产”文件夹,但 AssetManager 不引用该文件夹。所以我有三个问题:

首先,AssetManager 引用的文件夹在哪里?

其次,如何将文件放入该文件夹?

第三,如何访问我放入项目“资产”文件夹中的文件? (推论问题:如果 AssetManager 不使用这个文件夹,它的用途是什么?)

文档完全没有澄清这些问题。非常沮丧。

【问题讨论】:

    标签: android


    【解决方案1】:

    我的项目中有一个“assets”文件夹,但是 AssetManager 没有引用这个文件夹。

    是的,确实如此。

    首先,AssetManager 引用的文件夹在哪里?

    assets/ 在您的项目中。

    其次,如何将文件放入该文件夹?

    这取决于您的操作系统。大多数操作系统都有“文件管理器”,它支持某种拖放机制来复制文件。但是,如果您使用的是 Eclipse,则可以拖放到 Eclipse 中,或者确保按 F5 来更新 Eclipse,以更新您在 Eclipse 之外对 Eclipse 项目所做的更改。

    第三,如何访问我放入项目“资产”文件夹中的文件?

    使用AssetManager,或者有时通过file://android_asset/ Uri 值(注意它是android_asset,单数,而项目目录是assets/,复数——很烦人)。

    所以如果我理解正确,我不应该这样做:AssetManager mgr = getAssets();,这给了我一个完全不同的文件夹内容。

    没有,刚试过。我仍然得到错误文件夹的内容,即不是我项目的“资产”文件夹。

    那么你的项目就严重混乱了。很多很多开发人员都可以正常工作。

    例如:

    【讨论】:

      【解决方案2】:

      您可以将项目中所需的资源拖到 /assets 文件夹中,并通过以下方式通过代码访问它们:

      context.getAssets().open(YOUR_FILE_NAME);
      

      context.getAssets() 只会为您的应用程序包返回一个 AssetManager 实例,您可以从中访问文件。

      希望对你有帮助!

      【讨论】:

      • 所以如果我理解正确,我不应该这样做:AssetManager mgr = getAssets();,这给了我一个完全不同的文件夹内容。
      • 没有,刚试过。我仍然收到错误文件夹的内容,即不是我项目的“资产”文件夹。
      • 这很奇怪,它应该是这样工作的。我用过这种方法几次,它从来没有让我失望过。也许问题出在其他地方?
      【解决方案3】:

      如果您有项目文件 assets/foo.bar,那么在运行时getAssets().open("foo.bar") 将打开该文件。

      【讨论】:

      • 但我试图列出我项目的“资产”文件夹中的文件并得到完全不同的东西...AssetManager mgr = getAssets();文件 = mgr.list("");
      【解决方案4】:

      使用 Android Studio,我遇到了同样的问题。

      我尝试将我的“assets”文件夹放在“res”中,就像我们使用 Eclipse 时一样。

      但现在它已移至“src/main/assets”。这是您必须放置文件的地方。

      在此处查看已接受的答案: assets-folder-in-android-studio

      【讨论】:

        猜你喜欢
        • 2023-03-20
        • 2011-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-06
        • 2010-12-04
        • 2011-05-05
        相关资源
        最近更新 更多