1

I make folder structure for my default values enter image description here

sourceSets in build.gradle

 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'
                    ]
        }
    }

it works great for default values; but when i try same hierarchy in values-tr, application does not know strings in values-tr.

How can i handle this ?

Arda
  • 1,272
  • 11
  • 16

2 Answers2

0

In general for sub foldering in res folder, you can name folder as you wish but these folder must have their original name as a sub folder.

For example, lets say we want to make hierarchy like these

res/layout/activities/abstractActivities/activity_main.xml

so abstractActivities folder must have subfolder named "layout" (layout is the original folder name that comes from project opening.) And same as strings/drawables/anims all res element.

Here is my project folder hierarchy,

enter image description here

I have rearanged every res folder. But every single folder has own original named sub folder.

for anims

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

for app icon

-res/app_icon/mipmap_hdpi/ic_launcher.png

for string values

-res/strings/counters/values-bs/strings_counters.xml

and here is sourceSets code

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'
                    ]
        }
    }

I didn't find any easier method that sum up sourceSet =(

Arda
  • 1,272
  • 11
  • 16
-1

Unfortunately you can't. Resource subdirectories are not officially supported by the resource compiler, so are subdirectories with qualifiers.

Here is some bug to track the issue: https://issuetracker.google.com/issues/37009920

Thomas Keller
  • 5,260
  • 3
  • 42
  • 72