【问题标题】:How to export AAR including its dependencies?如何导出 AAR 及其依赖项?
【发布时间】:2015-04-15 02:41:31
【问题描述】:

我有一个使用library.aarlibrary.jar 的Android Studio 库项目。当我将它导出为 mylib.aar 并将这个新的 AAR 用于不同的应用程序/项目时,它找不到在 library.aarlibrary.jar 中定义的类。

我的build.gradle 看起来像这样:

apply plugin: 'com.android.library'
android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
}
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':library_dot_aar')
    compile project(':library_dot_jar')
}

我在 Android Studio 中使用 New -> Module -> Import .JAR or .AAR Package 导入了 AAR 和 JAR 文件,并将它们作为依赖项添加到 Project Structure -> Module Settings -> Dependencies -> Add Module Dependencies 中。

当我解压 mylib.aar 时它只有 25KB(考虑到 library.aar 超过 300KB,我假设 mylib.aar 的大小会在相同的范围内)并且包含的​​依赖项不包含在其中。如何导出包含其所有依赖项的 AAR?

【问题讨论】:

    标签: android android-studio


    【解决方案1】:

    你必须检查this answer

    没有组合库的机制。这有点复杂 您可能想要控制合并哪些依赖项(对于 例如,您可能不想在其中包含 support-v4)。还 您需要合并资源和 Android 清单。

    目前没有办法轻易破解某些东西,除非你是 确保资源在两个 res 文件夹之间没有冲突(对于 例如,您可以在一个库中包含 strings_a.xml,在其中包含 strings_b.xml 另一个库)。这样你就可以通过“合并”两个 res 文件夹 将它们都复制到同一位置(而不是在 android res 级别)。

    对于 Manifest,它会更复杂,但可以通过一些自定义来实现 代码。

    为此提供内置机制在我们的优先级中非常低,因此 不要指望它很快。

    【讨论】:

    • 谢谢。我通过在另一个项目中同时包含 library.aarlibrary.jar 以及 mylib.aar 找到了解决方法。
    • 嗨,alxcy,你有没有找到任何方法来制作 aar,包括依赖 url 和 jar 和 lib。它一定会帮助我们
    猜你喜欢
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 2017-11-26
    • 2017-03-03
    • 2016-06-07
    • 2011-08-03
    相关资源
    最近更新 更多