gpt4 book ai didi

android - 覆盖资源

转载 作者:太空狗 更新时间:2023-10-29 15:38:32 26 4
gpt4 key购买 nike

我有一个使用 Gradle 从命令行构建的 Eclipse 项目。
有一个单独的资源文件夹,其中包含应该用于发布构建的应用程序图标。
这是我正在尝试做的事情:

sourceSets {
main {
res.srcDirs = isRelease() ? ['res', 'res-release'] : ['res']
}
}

Gradle 拒绝覆盖图标:

Execution failed for task ':myapp:mergeApphanceDebugResources'.
> /myapp/res-release/drawable-xhdpi/app_icon.png: Error: Duplicate resources: /myapp/res-release/drawable-xhdpi/app_icon.png:drawable-xhdpi/app_icon, /myapp/res/drawable-xhdpi/app_icon.png:drawable-xhdpi/app_icon

有没有办法告诉 Gradle 在发生冲突时覆盖?

编辑:我想保留默认的 Eclipse 项目结构(即没有 main/java)。

最佳答案

Mark 的答案是正确的,但由于您在另一个答案中评论了 Eclipse 支持,我将创建一个新答案。

正如马克所说,使用 src/release/res (或调试)把你的发布只有图标。它们将自动覆盖 src/main/res 中的那些

现在,如果您想继续支持 Eclipse,只需像重新定位主源集一样重新定位发布源集:

android {
sourceSets {
main {
res.srcDirs = ['res']
}
release {
res.srcDirs = ['res-release']
}
}
}

所有构建类型(默认情况下你有 debugrelease ),以及你所有的风格(默认情况下没有风格),自动创建默认值为 src/<name>/[java|res|...] 的 sourceSets .所有这些 sourceSet 都可以通过 DSL 重新配置以重新定位文件夹。

关于android - 覆盖资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21049444/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com