Android Studio Gradle build "apply plugin: 'com.android.library'": aar 缺少文件

Android Studio Gradle build "apply plugin: 'com.android.library'": aar missing files

我正在使用 Android Studio 并构建 Android 库项目,因此我分发了 aar 文件。更具体地说,我只是在内部分发 jar(是的——客户仍在使用 Eclipse,所以我手动将 jar 与清单、资源等众所周知的程序结合起来)。

这是我的 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 缺少这些文件。如何实现 arr 中的 jar 这样的构建过程将包括这些文件 - 因为毕竟 - 它是常规存档,并且那些文件位于文件树中,已经压缩到 jar 中。

谢谢,

只需指定将文件包含在您的 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 闭包之后