Android的res目录中有哪些被禁止使用的目录名称?

3

我最近在我的Android项目中添加了res/raw/dictionaries/en-GB/wordlist.txt。它引起了错误。最终,我发现目录名dictionaries会导致问题,我将其更改为dicts,然后一切正常了。

为什么这个名称不被允许?还有其他不允许的名称吗?有没有不允许使用的目录名称列表?

2个回答

5
http://developer.android.com/guide/topics/resources/providing-resources.html上,你可以看到:
限定符名称规则
备选资源目录不能嵌套。例如,你不能拥有res/drawable/drawable-en/。
在res文件夹中不支持嵌套的文件夹,只能支持线性列表。但是,在assets文件夹中,你可以放置任意层次结构的文件和文件夹,因为assets文件夹中的内容不被认为是资源。
你不应该像res/raw/dicts/en-GB/wordlist.txt这样做,但如果发生了这种情况,你可能未能获取wordlist.txt的资源ID(R.raw.wordlist)。
assets文件夹和raw文件夹类似。两者都可以包含原始文件,但raw文件夹中的文件被视为资源,而assets文件夹中的文件则不是。

有趣。我还没有尝试访问这些文件,但是只是更改文件夹的名称似乎使错误消失了。听起来可能是一个漏洞。 - fredley
可能是一个错误。我用你定义的名称res/raw/dictionaries/en-GB/wordlist.txt进行了测试,在这种情况下它没有给我任何错误,但我无法通过资源ID(R.raw.wordlist)访问单词列表。 - Filipe Batista

0

不是的。res/raw 文件夹是你可以随意使用的。 - fredley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接