【问题标题】:Android Studio Gradle build "apply plugin: 'com.android.library'": aar missing filesAndroid Studio Gradle 构建“应用插件:'com.android.library'”:aar 缺少文件
【发布时间】:2016-01-16 16:33:54
【问题描述】:

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

谢谢,

【问题讨论】:

  • 动态托管字体和加载。像谷歌字体
  • @RobertRowntree 谢谢,我不想绕过这个问题,而是想了解如何自定义构建脚本。现在我正在做的是解压缩jar,添加文件并使用终端手动压缩回jar。
  • 在我的情况下,当我模块化导致 kotlin 文件不显示的项目时,我忘记添加应用插件:'kotlin-android'

标签: android android-studio jar android-gradle-plugin build.gradle


【解决方案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,您可能需要在android 闭包内指定sourceSets 闭包两次,然后在android 闭包之后再指定一次

【讨论】:

  • 嗨,谢谢。但这不起作用。请注意,tff 文件的位置在某个 java 包中。
  • 我为此提出了更具体的问题,因为您的回答让我专注于专注于什么。 stackoverflow.com/questions/33208453/…
猜你喜欢
  • 1970-01-01
  • 2010-09-09
  • 2016-02-04
  • 2021-11-16
  • 1970-01-01
  • 1970-01-01
  • 2020-04-09
  • 1970-01-01
  • 2014-08-10
相关资源
最近更新 更多