androidstudio如何打包来自多个库项目的单个aar?

aydmsdu9  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(298)

我正在构建android库项目,它依赖于另一个内部库项目。
我想知道是否有一种方法可以打包一个aar库,其中已经包含了内部库。我只想与我的应用程序开发人员共享一个aar库包。
这就是我的build.gradle文件目前的样子,但目前它们生成单独的aar文件,这两个文件都需要包含在应用程序的build.gradle中。由于另一家公司正在构建应用程序,我们需要与他们共享最终的aar文件,而不是完整的库项目。
-----内部库------>>>>>>>>>>

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'
}

-----外部的--------

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')
}
enyaitl3

enyaitl31#

没有一种机制来组合库。这有点复杂,因为您可能希望控制哪些依赖项被合并(例如,您可能不希望在其中包含support-v4)。此外,还需要合并资源和android清单。
此时,除非您确定资源在两个res文件夹之间没有冲突(例如,您可以在一个lib中有strings_a.xml,在另一个lib中有strings_b.xml),否则无法轻松地破解某些内容。通过这种方式,您可以通过将两个res文件夹复制到同一位置来“合并”这两个res文件夹(而不是在android res级别进行合并)。
对于清单来说,它会更复杂,但是对于一些自定义代码是可行的。
提供一个内置的机制,这是我们非常低的优先级,所以不要指望它在短期内。

xriantvc

xriantvc2#

因此,您必须在maven上单独上传每个库,并在父库模块中使用它的实现,直到主库模块。只有在maven上发布主库时,才会包含所有子依赖项。

相关问题