URI未在资源文件中注册

时间:2014-01-07 23:12:47

标签: android gradle android-studio android-gradle build.gradle

我正在使用 Android Studio和Gradle 来开发Android应用程序。

我正在创建一个主题,我有十几个资源文件。为了使我的项目更清晰,我(following this SO answer) 将所有与主题相关的文件移至另一个名为res_theme 的文件夹,并在我的 build.gradle文件中添加了以下合并两个资源文件文件夹:

sourceSets {
    main {
        res {
            srcDir 'src/main/res_theme'
        }
    }
}

现在当我构建项目时我在多个资源文件中出现以下错误

URI is not registered in resource file

此行发生错误:

<resources xmlns:android="http://schemas.android.com/apk/res/android">

我注意到的另一件事就是弹出消息:

'main' in build cannot be applied to '(groovy.lang.Closure)'

在这一行:main {

修改

项目结构:

AppName
|--------lib
|--------src
         |--------main
                  |--------java
                  |--------res
                  |--------res_theme
                  |--------AndroidManifest.xml
|--------AppName.iml
|--------build.gradle
|--------proguard-rules.txt

如果您需要更多细节,请告诉我

2 个答案:

答案 0 :(得分:0)

sourceSets块需要在android块内。

答案 1 :(得分:0)

看起来不可能。

我尝试了下一行:

android {
    compileSdkVersion 19
    buildToolsVersion "19"

    defaultConfig {
       minSdkVersion 9
       targetSdkVersion 16

       versionCode 4
       versionName "1.0.0.6"
    }

    sourceSets {
        main {
            resources {
                srcDirs = ["src/main/res", "src/main/res2"]
            }
        }
    }
}

我在res2文件夹中添加了简单的字符串:

<resources>
    <string name="test1">Test 1</string>
</resources>

当我只是尝试访问此字符串时:

setTitle( R.string.test1 );

我遇到了编译错误 - 无法找到符号变量test1

您可以尝试使用口味来解决这个问题,但我不认为这是口味的正确用法。你也可以将图书馆作为主题,但我不认为这是最佳解决方案。

相关问题