build.gradle中的sourceSets
sourceSets {
main {
res.srcDirs =
[
'src/main/res/layouts/activities',
'src/main/res/values/strings/counters',
'src/main/res/values/strings/login',
'src/main/res/values/strings/memories',
'src/main/res/values/strings/profile',
'src/main/res/values/strings/profile/settings',
'src/main/res/values/strings',
'src/main/res/values/strings/values-tr/aa',
'src/main/res/values/strings/values-tr',
'src/main/res/values',
'src/main/res/layouts',
'src/main/res'
]
}
}
它适用于默认值;但是当我在values-tr中尝试相同的层次结构时,应用程序不知道values-tr中的字符串。
我该如何处理?
答案 0 :(得分:0)
通常,对于res文件夹中的子文件夹,您可以根据需要命名文件夹,但这些文件夹必须将其原始名称作为子文件夹。
例如,假设我们想要制作像这样的层次结构
res/layout/activities/abstractActivities/activity_main.xml
所以abstractActivities文件夹必须有名为“layout”的子文件夹(布局是来自项目开头的原始文件夹名称。)和strings / drawables / anims所有res元素相同。
这是我的项目文件夹层次结构
我重新安排了每个res文件夹。但是每个文件夹都有自己的原始命名子文件夹。
for anims
-res /动画/对话框/动画/ dialog_animaiton_enter.xml
for app icon
-res / app_icon / mipmap_hdpi / ic_launcher.png
表示字符串值
-res /串/计数器/值-BS / strings_counters.xml
这里是sourceSets代码
sourceSets {
main {
res.srcDirs =
[
//strings
'src/main/res/strings/counters',
'src/main/res/strings/memories',
'src/main/res/strings/profile',
'src/main/res/strings/profile/settings',
'src/main/res/strings/login',
'src/main/res/strings',
//layouts
'src/main/res/layouts/activities/login',
'src/main/res/layouts/activities',
'src/main/res/layouts/fragments/profile/settings',
'src/main/res/layouts/fragments/profile',
'src/main/res/layouts/fragments/counters',
'src/main/res/layouts/fragments/memories',
'src/main/res/layouts/dialogs',
'src/main/res/layouts/rows',
'src/main/res/layouts/widgets',
'src/main/res/layouts',
//anim
'src/main/res/animation/dialog',
'src/main/res/animation/heart',
'src/main/res/animation/layout',
//drawable
'src/main/res/visual/icons',
'src/main/res/visual/xml',
//app icon
'src/main/res/app_icon',
//main
'src/main/res'
]
}
}
我没有找到任何更简单的方法来总结sourceSet =(
答案 1 :(得分:-1)
不幸的是你做不到。资源编译器不正式支持资源子目录,具有限定符的子目录也是如此。
以下是跟踪问题的一些错误:https://issuetracker.google.com/issues/37009920