1

我为我的默认值创建文件夹结构 在此处输入图像描述

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

我该如何处理?

4

2 回答 2

0

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

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

res/layout/activities/abstractActivities/activity_main.xml

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

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

在此处输入图像描述

我重新排列了每个 res 文件夹。但是每个文件夹都有自己的原始命名子文件夹。

用于动画

-res/animation/dialog/anim/dialog_animaiton_enter.xml

对于应用程序图标

-res/app_icon/mipmap_hdpi/ic_launcher.png

对于字符串值

-res/strings/counters/values-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 =(

于 2017-12-21T02:04:05.487 回答
-1

不幸的是你不能。资源编译器不正式支持资源子目录,带有限定符的子目录也是如此。

这是跟踪问题的一些错误:https ://issuetracker.google.com/issues/37009920

于 2017-12-21T00:40:04.613 回答