如何导出AAR包括其依赖项?

时间:2015-04-15 02:41:31

标签: android android-studio

我有一个使用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')
}

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

当我解压缩mylib.aar时,它只有25KB(考虑library.aar超过300KB,我认为mylib.aar的大小将在相同的范围内)和包含的依赖项不包括在内。如何导出包含其内部所有依赖项的AAR?

1 个答案:

答案 0 :(得分:2)

您必须检查this answer

  

没有组合库的机制。它有点复杂   你可能想控制哪些依赖项被合并(for   例如,您可能不希望在其中包含support-v4。也   您需要合并资源和Android清单。

     

此时,除非你这样做,否则无法轻易入侵   确保资源在两个res文件夹之间没有冲突(for   实例,你可以在一个lib和strings_b.xml中使用strings_a.xml   另一个lib)。通过这种方式,你可以只是"合并"这两个res文件夹   将它们复制到同一个位置(而不是合并在一起)   android res等级)。

     

对于Manifest它更复杂,但可以用一些习惯来实现   代码。

     

为此提供内置机制对我们的优先级非常低   不要期待很快。