我正在使用 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
如果您需要更多细节,请告诉我
答案 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
。
您可以尝试使用口味来解决这个问题,但我不认为这是口味的正确用法。你也可以将图书馆作为主题,但我不认为这是最佳解决方案。