我正在尝试使用Android Studio和gradle为库Android项目创建AAR文件 .
我想从此存档中排除特定的文件夹和文件,但我找不到有效的解决方案 .
该项目有两种口味 .
app/
|--libs/
|--src/
|--flavour1/
| |--java/
| |--a1/
| | |--class_File1.java
|--flavour2/
| |--java/
| |--a1/
| | |--class_File1.java
|--main/
|--java/
| |--...
|--res/
| |--raw/
| | |--comments.txt
| |--...
|--AndroidManifest.xml
我使用像这样的build.gradle文件
apply plugin: 'com.android.library'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 10
targetSdkVersion 21
}
packagingOptions {
exclude 'assets'
exclude '**/comments.txt'
}
sourceSets {
flavour1 {
resources {
exclude '**/comments.txt'
}
}
flavour2 {
}
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
productFlavors {
flavour1 {
packagingOptions {
exclude 'assets'
exclude 'res/raw/comments.txt'
}
}
flavour2 {
}
}
}
dependencies {
compile 'com.google.android.gms:play-services:+'
}
一般来说,我已经做了很多实验 . 我已尝试过packagingOptions,排除在sourceSets中,但似乎没有任何效果 . 我想要实现的不包括例如.AAR存档文件comments.txt和文件夹“assets”这是一个可选文件夹 . 我每次检查.AAR文件时都会将其重命名为zip并查看包含的文件 .
我也在这里查看了文档:http://simpligility.github.io/android-maven-plugin/aar-mojo.html#configurations其中可能配置可能是一个解决方案,但我不知道如何使用它或如何前进 . 任何帮助将不胜感激 .
2 回答
认为它与this问题有关 . 通常你可以试试:
源集排除
包装选项
Aapt选项
我无法让他们中的任何一个工作 .
也就是说,你可以制作一些丑陋的黑客:
我现在不能尝试,但这可能是我的方法:
再一次,我无法尝试,所以这可能是完全无稽之谈 . 这个想法是不排除东西,但只包括你想要的文件/目录 . 这可能会导致每种风格的文件/文件夹重复!
作为消息来源,我建议:Gralde Plugin User Guide,answer from Xavier Ducrohet以及Gradle + Android, want to overwrite /assets with custom folder in buildFlavor .