当您需要在Android项目中使用资源文件(例如图像)时,通常将它们放在res
目录中(例如res/drawable
),并且Android构建过程会将它们选中默认。但是,如果您的资源文件来自Android项目之外的目录,该怎么办?如何在同步或构建期间将它们复制到res/drawable
这样的文件夹中?
我觉得解决方案是编写Gradle代码,但我不知道该怎么做。我在app
模块build.gradle
文件中尝试了以下代码:
task copyResources(type: Copy) {
from '../../../images'
into 'res/drawable'
}
但就我所知,它并没有复制任何东西。这可能只是我对如何使用Gradle的无知,我可以使用一些帮助。
我意识到我可以手动从../../../images
复制到res/drawable
,但是让我们说这些文件经常更改,我想在每次同步时自动获取当前版本,或者每当我建立。如果可以,我会很高兴知道如何做到这一点。如果不可能,我也想知道。
答案 0 :(得分:2)
一般来说,你不想这样做。原因在于它使复制文件混淆了原本干净的源控制系统。
更好的想法是建立一个安装在单独项目中的Android库(AAR),然后通过将AAR添加为父项目的依赖项来使用它们。
答案 1 :(得分:2)
请参阅How to run copy task with android studio into assets folder
可以添加
preBuild.dependsOn copyResources
任务copyResources(){...}之后 在你的build.gradle中。
但是,这不是复制资源的好方法。