【问题标题】:Include external module in Android Library aar在 Android 库 aar 中包含外部模块
【发布时间】:2023-03-23 11:51:01
【问题描述】:

我有一个足够简单的 Android 库 build.gradle 文件(不相关部分已删除),

apply plugin: 'com.android.library'

repositories {
    maven { url 'https://dl.bintray.com/alexeydanilov/maven' }
}

dependencies {
    compile 'com.danikula:videocache:1.0.1'
}

我希望能够构建一个 Android 库 .aar,其中包含我想要的所有文件,以及来自 videocache 外部模块的所有文件。

我尝试了许多不同的技术来尝试实现这一目标(另一个项目,更改“传递”的设置,尝试“导出 = true”),但都证明不成功,我不确定我还能尝试什么。

如果我下载源 .jar 文件将其放入库中,将必要的位添加到设置文件中,它会正确打包到 .aar 中,但我似乎无法通过引用找到任何方法像这样的外部模块。

【问题讨论】:

    标签: android android-gradle-plugin android-library


    【解决方案1】:

    首先不建议将外部库包含到 aar 文件中。可以在here找到之前的答案:

    我引用的文字如下:

    使用工件不会将它包含在 aar 中。整点 使用远程工件是不依赖罐子,而是依赖于 工件地址,以便使用您的“aar”的项目可以解决所有问题 它的依赖图,查找重复项,解决冲突等......

    如果您在 Maven 上发布您的“aar”,则工件 POM 将包含 依赖关系。如果您从多项目设置中使用它,则项目 生成“aar”会将这些依赖项发送到项目 引用它。

    对于本地jar,因为这些都无法知道jar文件是什么 是不是我们必须在本地打包,但这真的不是你的东西 如果您要将“aar”提交到工件存储库,则应使用。

    因此,如果您想包含并使用远程仓库中的“aar”库,您可以先发布它,然后将此行添加到您的依赖项中:

    compile 'Replace with the link to your lib'
    

    如果您想从本地使用“aar”文件,还有一种不太完美但可行的方法来包含所有外部库,只需复制以下行:

    compile 'com.danikula:videocache:1.0.1'
    

    到使用你的库的项目中的依赖项。但无论如何不建议这样做。

    希望我的回答能帮到你。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多