android - Android Studio如何打包来自多个库项目的单个AAR?

标签 android gradle android-studio android-gradle-plugin

我正在构建android库项目,该项目依赖于另一个内部库项目。

我想知道是否有一种方法可以打包单个AAR库,该库中已经包含内部库。我只想与我的应用程序开发人员共享1个AAR库软件包。

这是我的build.gradle文件当前的外观,但是当前它们生成单独的AAR文件,并且都需要包含在Application的build.gradle中。由于另一家公司正在构建应用程序,因此我们需要与他们共享最终的AAR文件,而不是共享完整的库项目。

----- internalLib -------- >>>>>>>>>>

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.+'
    }
}
apply plugin: 'android-library'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 18
    buildToolsVersion '18.1.1'
}

dependencies {
    compile 'com.android.support:support-v4:18.0.0'
}

----- externalLib --------
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.+'
    }
}
apply plugin: 'android-library'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 18
    buildToolsVersion '18.1.1'
}

dependencies {
    compile 'com.android.support:support-v4:18.0.0'
    compile project(':internalLib')
}

最佳答案

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

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

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

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

关于android - Android Studio如何打包来自多个库项目的单个AAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31226550/

相关文章:

android - 如何获得更准确的位置?

android - 如何注册长按AutoCompleteTextView下拉菜单中显示的列表项?

android - Android构建错误 'Failed to read androiddebugkey from store'

java - 是否可以阻止 Gradle 添加排除的传递依赖项?

gradle - 错误: Spring Application Cannot be resolved

java - 当我使用这个线程代码时,我的应用程序崩溃了

android - 如何在 Android Studio 中将 Google Play Services repo 更新到最新版本?

android - 如何使用 "Android-Universal-Image-Loader"

Android studio 更新构建错误

android - 测试:哪个国家不支持计费库?