Android/Gradle:为什么可以多次声明values.XML文件? 预备知识
我创建了一个应用程序,其中使用了以下树结构(应用程序级别build.gradle正在根据修改-您可以在本问题末尾找到这些更改):Android/Gradle:为什么可以多次声明values.XML文件? 预备知识,android,android-gradle-plugin,Android,Android Gradle Plugin,我创建了一个应用程序,其中使用了以下树结构(应用程序级别build.gradle正在根据修改-您可以在本问题末尾找到这些更改): 应用程序 src 主要 我的主题 捆 一捆 可绘制文件夹、值文件夹、布局文件夹等 全球的 可绘制文件夹、值文件夹、布局文件夹等 有好几捆。所有值目录(每个包一个,全局文件夹一个)都包含文件strings.XML我的应用程序确实正确编译和执行 然而,Android文档指出: 注意:如果两个或多个资源目录包含相同的资源文件,则在资源合并期间
- 应用程序
- src
- 主要
- 我的主题
- 捆
- 一捆
- 可绘制文件夹、值文件夹、布局文件夹等
- 一捆
- 全球的
- 可绘制文件夹、值文件夹、布局文件夹等
- 捆
- 我的主题
- 主要
- src
strings.XML
我的应用程序确实正确编译和执行
然而,Android文档指出:
注意:如果两个或多个资源目录包含相同的资源文件,则在资源合并期间会发生错误
()
问题:
既然我使用了相同的文件strings.xml
,为什么不显示错误?(当然,这些strings.xml
文件的内容会根据它们所在的目录(包目录或全局目录)而变化)
应用程序级构建。渐变
为了使其工作(例如,使Android解析器能够解析符号),我添加了以下几行:
android {
sourceSets {
main {
res.srcDirs = [
'src/main/bestheme/global',
'src/main/bestheme/bundles/a_bundle'
]
}
}
}
strings.xml
(以及任何值
资源)的不同之处在于,资源标识符不是基于文件名,而是在文件中实际指定的
资源合并发生在资源标识符级别。如果同一源集级别上的资源标识符没有冲突,则合并可以正常工作
文档注释对于资源id从文件名派生的资源类型有效。例如,布局或可绘制资源。strings.xml
(以及任何值
资源)的不同之处在于,资源标识符不是基于文件名,而是在文件中实际指定的
资源合并发生在资源标识符级别。如果同一源集级别上的资源标识符没有冲突,则合并可以正常工作
文档注释对于资源id从文件名派生的资源类型有效。例如,布局或可绘制资源。回答清楚,谢谢!你从哪里学来的?顺便问一下,你认为我的树结构会导致任何发展问题吗?(我曾读到,拥有不同的可绘制文件夹只是为了处理不同的屏幕大小,例如,但这不是我在这里要做的)-或者更糟糕的是:我的树结构是否意味着在客户手机上执行我的应用程序时会出现错误?这是基于我使用Android构建工具的实际经验,而且,接受这些文档并非总是100%准确。回答清楚,谢谢!你从哪里学来的?顺便问一下,你认为我的树结构会导致任何发展问题吗?(我曾读到,拥有不同的可绘制文件夹只是为了处理不同的屏幕大小,例如,但这不是我在这里要做的)-或者更糟糕的是:我的树结构是否意味着在客户手机上执行我的应用程序时会出现错误?这是基于我使用Android构建工具的实际经验,并且承认文档并非总是100%准确。