Gradle / Android:非平面布局目录结构

时间:2015-07-30 15:27:14

标签: android gradle

在我的Android应用中,我希望在res / layout中有子目录。当然Android并不支持这个,所以我尝试配置Gradle来做到这一点。

我的项目结构:

src/
    /package_with_java_source
res/
    /drawable
    /layout
           /someLayDir

现在我想为我和我建立项目gradle合并这个子目录:

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        assets.srcDirs = ['assets']
        res.srcDirs =
                [
                        'res/layout/someLayDir',
                        'res/layout',
                        'res'
                ]
    }
}

不幸的是,当我尝试构建项目时,我收到错误:

Error:(29, 60) Gradle: error: cannot find symbol variable app_bar

app_bar是我的布局ID(R.id.app_bar)。请帮帮我:(

P.S。 如果重要的是我使用Intellij Idea 14

1 个答案:

答案 0 :(得分:1)

res.srcDirs指向一组资源根目录。 res/layout/res/layout/someDir都不是资源根目录。

在这里,通过"资源根目录",我的意思是构建工具希望看到典型的资源目录(例如,drawable-mdpi/layout/)作为根。在你的情况下:

  • res/layout/没有res/layout/drawable-mdpi /,或res/layout/layout/,或类似

  • res/layout/someDir/没有res/layout/someDir/drawable-mdpi /,或res/layout/someDir/layout/,或类似