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

alx*_*cyl 5 android android-studio

我有一个使用library.aar和的Android Studio库项目library.jar.当我出口它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')
}
Run Code Online (Sandbox Code Playgroud)

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

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

Mou*_*Mou 3

您必须检查这个答案

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

此时,无法轻松破解某些内容,除非您确定两个 res 文件夹之间的资源没有冲突(例如,您可以在一个库中包含 strings_a.xml,在另一个库中包含 strings_b.xml)。这样你就可以通过将两个 res 文件夹复制到同一位置来“合并”它们(而不是在 android res 级别进行合并)。

对于清单来说,它会更复杂,但可以使用一些自定义代码。

为此提供内置机制的优先级非常低,因此不要指望很快就会实现。