sourceSets中的语言值用法

时间:2017-12-20 22:57:25

标签: android android-gradle build.gradle source-sets

我为默认值创建文件夹结构 enter image description here

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中的字符串。

我该如何处理?

2 个答案:

答案 0 :(得分:0)

通常,对于res文件夹中的子文件夹,您可以根据需要命名文件夹,但这些文件夹必须将其原始名称作为子文件夹。

例如,假设我们想要制作像这样的层次结构

res/layout/activities/abstractActivities/activity_main.xml

所以abstractActivities文件夹必须有名为“layout”的子文件夹(布局是来自项目开头的原始文件夹名称。)和strings / drawables / anims所有res元素相同。

这是我的项目文件夹层次结构

enter image description here

我重新安排了每个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