使用gradle在android项目中生成资源

时间:2014-09-16 06:40:55

标签: android gradle android-gradle

我需要在zip文件中打包一些文本文件,并将其放在我的Android项目的assets文件夹中。 我正在使用gradle和android studio。 这就是我目前build.gradle中的内容:

task textsToZip(type: Zip, description: 'create a zip files with all txts') {
    destinationDir file("$buildDir/txts")
    baseName 'txts'
    extension 'zip'
    from fileTree(dir: 'text-files', include: '**/*.txt')
    into 'assets'
}

android.applicationVariants.all { variant ->
    variant.mergeAssets.dependsOn(textsToZip)
}

这似乎不起作用,我没有在正确的地方得到txts.zip。 我很陌生,有人能给我一个关于我做错的提示吗? 谢谢!

1 个答案:

答案 0 :(得分:5)

好的,最后我发现了。 我以这种方式为每个变体创建了一个任务:

android.applicationVariants.all { variant ->
    def zipTask = project.tasks.create "textsToZip${variant.name.capitalize()}", Zip
    zipTask.destinationDir = file(variant.processResources.assetsDir)
    zipTask.baseName = "txts"
    zipTask.extension = "zip"
    zipTask.from fileTree(dir: 'text-files', include: '**/*.txt')
    variant.processResources.dependsOn(zipTask)
}

我不知道这是否是最好的方式,但它对我有用,而且我觉得它也很优雅。