我已经创建了以下哪种树结构被使用(根据the documentation应用级的build.gradle被修改 - 你可以找到这些变化在这个问题结束)的应用程序:
有几束。所有值目录(每包和一个全局文件夹)包含文件strings.XML
。我的应用程序编译并正确执行。
然而,Android的文档指出:
注意:如果两个或更多的资源目录包含相同的资源文件,资源合并过程中发生错误。
(Qazxswpoi)
所以,既然我用的是同一个文件https://developer.android.com/studio/write/add-resources#change_your_resource_directory,为什么没有显示任何错误? (当然,根据在它们所在的目录,这些strings.xml
文件内容发生了变化 - 无论是他们的捆绑目录或全局目录)
应用级的build.gradle
(例如,使Android的解析器能够解析符号),使其工作,我添加了这些行:
strings.xml
android {
sourceSets {
main {
res.srcDirs = [
'src/main/bestheme/global',
'src/main/bestheme/bundles/a_bundle'
]
}
}
}
(以及任何strings.xml
资源)都在这个意义上,资源标识符不是基于文件名,但里面的文件实际上规定不同。
资源合并发生在资源标识符的水平。如果有在同一sourceset水平,资源标识符没有冲突,那么合并工作的很好。
文档注释也适用于对资源的ID是从文件名派生的资源类型。例如,布局或绘图资源。