我试图以递归方式加载我放置在项目中“assets”文件夹中的所有资源。当我执行以下操作时:
AssetManager assetManager = getResources().getAssets();
String assets[] = assetManager.list("");
并检查在assets数组中加载了哪些字符串,我找到了我在指定文件夹中放置的资源,以及字符串“images”,“sounds”和“webkit”。有人知道为什么吗?
对于背景信息(尚不知道它是否适用),我的资产是包含完整html网页的zip文件,我用它来加载到WebViews中。
答案 0 :(得分:7)
我也注意到了这一点。以下是放置在这些目录中的一些资产:
webkit/play.png
webkit/nullPlugin.png
webkit/missingImage.png
webkit/android-weberror.png
sounds/bootanim1.raw
images/comobox-disabled.png
images/comobox-noHighlight.png
我的猜测是系统依赖于此资产存在于所有.apk文件中。但是,Android不是通过构建它们(这将增加所有.apk文件的大小),而是通过资产API模拟它们。
此外,作为副作用,您可以使用与内置资源同名的任何自定义资源覆盖此资产。并不是说这可能太有用了,但这是可能的。
答案 1 :(得分:0)
我有这个问题,我建议你检查几件事情:
assets->app->image
,assets->app->another
dir
在这个例子中,app dir是asssete root中唯一的目录。答案 2 :(得分:0)
就我而言,我在项目的“app”目录(app - > assets)中创建了assets文件夹,而且我在AssetsManager中没有读取我加载到这个“assets”文件夹中的文件。然后我右键单击“app”文件夹 - >新 - >文件夹 - >资产文件夹(位置“主”)和一切都已解决。问题在于创建“assets”文件夹的位置。