我正在使用Android Studio并构建Android库项目,因此我分发了aar
文件。更具体地说,我只是在内部分配jar(是的 - 客户仍在使用Eclipse,因此我手动将jar
与manifest,res等众所周知的程序结合起来。)
这是我的Gradle构建脚本(常规默认...):
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "23.0.0"
lintOptions {
abortOnError false
}
defaultConfig {
// Ain't applicationIdNot
minSdkVersion 11
targetSdkVersion 22
versionCode 1
versionName "1"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
resources {
srcDir 'src/../lib'
}
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile '...'
}
问题在于:在常规java类的一个java包下,我有ttf
个字体文件。这是由于历史原因,现在项目的复杂性不允许进行更改并将它们移动到实际需要的位置。
嗯 - jar丢失了这些文件。如何实现构建过程,jar
中的arr
将包含这些文件 - 因为毕竟 - 它是常规归档,并且那些文件已经压缩到jar
的文件树中。
谢谢,
答案 0 :(得分:1)
只需指定在sourceSets
关闭
// if you want to include the files in your aar
android {
...
sourceSets {
main {
resources.includes = [ '**/mySweetFont.ttf' ]
}
}
}
// to include in your jar
sourceSets {
main {
resources.includes = [ '**/mySweetFont.ttf' ]
}
}
这会将文件放在生成的工件的根目录下。对于jar
,您可能需要在sourceSets
闭包内两次指定android
闭包,并在android
闭合后再次指定