2017-05-24 50 views
1

我必須在我的AAR中的assets下分發一些不應壓縮的文件。AAR Android Library - 禁用資產壓縮

因此,例如,在一個Android應用程序,你會做build.gradle如下:

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

是否有從AAR文件應用這種方法嗎?我寧願不必爲開發者使用我的AAR來修改他們的build.gradle文件。

回答

0

我不認爲有一種方法可以從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') 
    } 
} 

如果有另一種方式,我所有的耳朵。