Android Studio如何从多个库项目中打包单个AAR?

 一生的牵扯 发布于 2023-02-09 00:21

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

我想知道是否有办法打包单个AAR库,其中已包含内部库.我想只与我的应用程序开发人员共享一个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')
}

Xavier Ducro.. 35

没有组合库的机制.这有点复杂,因为您可能想要控制哪些依赖项被合并(例如,您可能不希望在那里包含support-v4).您还需要合并资源和Android清单.

此时除非您确定资源在两个res文件夹之间没有冲突(例如,您可以在一个lib中使用strings_a.xml而在另一个lib中使用strings_b.xml),否则无法轻易入侵某些内容.这样你就可以通过将两个res文件夹复制到同一个位置来"合并"它们(而不是在android res级别进行合并).

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

为此提供内置机制对我们的优先级非常低,所以不要期望它很快就会出现.

1 个回答
  • 没有组合库的机制.这有点复杂,因为您可能想要控制哪些依赖项被合并(例如,您可能不希望在那里包含support-v4).您还需要合并资源和Android清单.

    此时除非您确定资源在两个res文件夹之间没有冲突(例如,您可以在一个lib中使用strings_a.xml而在另一个lib中使用strings_b.xml),否则无法轻易入侵某些内容.这样你就可以通过将两个res文件夹复制到同一个位置来"合并"它们(而不是在android res级别进行合并).

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

    为此提供内置机制对我们的优先级非常低,所以不要期望它很快就会出现.

    2023-02-09 00:40 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有