我的 Android 项目有一些资源没有 checkin 源代码,而是由构建系统下载。我已经弄清楚如何在 gradle 中下载并提取它们,但我似乎在构建过程中做得太晚了,因为它们没有被复制到 apk 中。
def assetsDir = new File(projectDir, 'src/main/assets')
task extractAssets(type: Exec) {
def wd = assetsDir
def extractDir = 'extractedStuff'
outputs.dir "${wd}/${extractDir}"
workingDir wd
commandLine 'tar', 'xzf', 'assets-to-extract.tgz', extractDir
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn extractAssets
}
我第一次在清理后运行它时,它将资源提取到资源目录中,但不将它们包含在我的 apk 中。之后,每当我构建时,它都会包含 apk 中的资源。我的结论是,我应该让 extractAssets 任务在构建过程的早期发生(也许在 mergeAssets 之前?)。如果是这样,我在哪里添加dependsOn?
最佳答案
在你的 gradle 文件中,你可以指定在构建之前执行一个任务:
preBuild.dependsOn(extractAssets)
这将在构建之前执行您的“extractAssets”
希望对你有帮助!
关于android - 在 Android Studio 中进行 gradle 构建时,如何将资源提取到资源目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24619671/