AAR Android 库 - 禁用资产压缩

AAR Android Library - disable compression on assets

我必须在我的 AAR 中分发 assets 下不应压缩的一些文件。

例如,在 Android 应用程序中,您可以在 build.gradle 中执行以下操作:

android {
    ...
    aaptOptions {
        noCompress 'dll'
    }
}

有没有办法从 AAR 文件中应用它?我宁愿不必为使用我的 AAR 的开发人员修改他们的 build.gradle 文件提供说明。

我认为没有办法从 AAR 内部设置 gradle 构建设置。

但是,我正在制作一个 gradle 插件,所以我计划随 AAR 发布一个 gradle 插件。

所以在我的插件中我这样做:

class AaptOptionsTask extends DefaultTask {

    @TaskAction
    def run() {
        project.configure(project) {
            project.android.aaptOptions.setProperty('noCompress', 'dll')
        }
    }

    AaptOptionsTask() {
        group = 'myGroup'
        description = 'aaptOptions settings'
    }
}

设置为这样的任务:

class MyGradlePlugin implements Plugin<Project> {
    @Override
    void apply(Project project) {
        project.task('aaptOptionsTask', type: AaptOptionsTask)
        project.tasks.getByName('preBuild').dependsOn('aaptOptionsTask')
    }
}

如果有其他方法,我洗耳恭听。