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

使用gradle在android项目中生成资产,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,我需要将一些文本文件打包到一个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' exte

我需要将一些文本文件打包到一个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放在正确的位置。 我是格拉德尔的新手,有人能告诉我我做错了什么吗?
谢谢

好吧,最后我想出来了。 我为每个变体创建了一个任务,方法如下:

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)
}

我不知道这是否是最好的方法,但它对我很有效,我发现它也很优雅。

什么不起作用?在构建结束时,
资产
目录中没有zip文件。在这种情况下,zip是什么?我需要这类任务,但要为每个变体将sass编译为Css。看(你可以得到50个声望)