Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android URI未在资源文件中注册_Android_Gradle_Android Studio_Android Gradle Plugin_Build.gradle - Fatal编程技术网

Android URI未在资源文件中注册

Android URI未在资源文件中注册,android,gradle,android-studio,android-gradle-plugin,build.gradle,Android,Gradle,Android Studio,Android Gradle Plugin,Build.gradle,我正在使用Android Studio和Gradle开发一个Android应用程序 我正在创建一个主题,我得到了十几个资源文件。因此,为了使我的项目更清晰,我将所有与主题相关的文件移动到另一个名为res_theme的文件夹中,并在build.gradle文件中添加了以下内容以合并两个资源文件文件夹: sourceSets { main { res { srcDir 'src/main/res_theme' } } } 现在

我正在使用Android Studio和Gradle开发一个Android应用程序

我正在创建一个主题,我得到了十几个资源文件。因此,为了使我的项目更清晰,我将所有与主题相关的文件移动到另一个名为res_theme的文件夹中,并在build.gradle文件中添加了以下内容以合并两个资源文件文件夹:

sourceSets {
    main {
        res {
            srcDir 'src/main/res_theme'
        }
    }
}
现在,当我构建项目时,在几个资源文件中出现以下错误:

该错误发生在此行中:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
在这行中:main{

编辑 项目结构:


如果您需要更多详细信息,请告诉我sourceSets块需要位于您的android块内。

看起来不可能

我尝试了以下几行:

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文件夹中添加了简单字符串:

我得到编译错误-找不到符号变量test1


你可以尝试用Flavors来解决这个问题,但我认为这不是Flavors的正确用法。你也可以为主题创建库inly,但我同样认为这不是最佳解决方案。

sourceSets块显然在android块内。我认为目录名应该是res-theme而不是res-U-theme。文件夹名中不接受下划线?h在他使用res_lighttheme之前。我现在无法尝试,但稍后会尝试。请告诉我错误出现的文件名,以及您写入的文件。@pyus13 res_theme文件夹中的每个资源文件,定义中都有这一行。例如主主题文件:themes_appname.xml首先感谢您的关注。我被卡住了,我可以找不到任何帮助。为什么要使用instrumentTest。setRoot'src/test'?也看看这个答案似乎是可能的:我删除了令人困惑的一行。也许是,但在新版本中不再如此。我会非常有信心什么时候我会看到android gradle插件的代码:你们看到了吗:?看起来确实有可能合并2个资源德尔斯
'main' in build cannot be applied to '(groovy.lang.Closure)'
AppName
|--------lib
|--------src
         |--------main
                  |--------java
                  |--------res
                  |--------res_theme
                  |--------AndroidManifest.xml
|--------AppName.iml
|--------build.gradle
|--------proguard-rules.txt
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"]
            }
        }
    }
}
<resources>
    <string name="test1">Test 1</string>
</resources>
setTitle( R.string.test1 );