【问题标题】:Manifest merger for my android library我的 android 库的清单合并
【发布时间】:2016-09-04 03:49:05
【问题描述】:

我的库 (x) 依赖于预编译的 aar 库 (y)。我不希望我的库 x 的用户包含 y 作为依赖项,即我想提供 x 作为自给自足的包。

y 是一个仅包含来自第三方的 aar 的模块,它捆绑了布局文件、图像、类和清单。当我构建我的库 x 时,在以下文件夹下 构建/中间体/exploded-aar/y/未指定/ 我懂了, AndroidManifest.xml R.txt aapt/aidl/assets/jars/jni/libs/res/

我知道 y.aar 已在此处解压缩,这些正确属于 y.aar 库。

但是,当 x.aar 生成时,我看不到清单,资源正在合并,我无法理解为什么?

清单/资源合并是否仅适用于 com.android.application 插件,不适用于 com.android.library?

非常感谢任何帮助。谢谢。

【问题讨论】:

    标签: java android


    【解决方案1】:

    你可以做的是使用传递依赖

    例如在您的主机应用中:

    compile('com.crashlytics.sdk.android:crashlytics:KIT_VERSION@aar') {
        transitive = true;
    }
    

    它将获取您依赖项的所有依赖项。

    【讨论】:

    • 就我而言,我的库 (x.aar) 不包括来自 y.aar 的活动/接收器/资源,即资源和清单没有合并。
    • 我不太明白,你能再解释一下吗? @Vignesh
    • 我想创建一个依赖于第三方库(y.aar 作为模块可用)的 android 库 (x.aar)。我不希望使用 x.aar 的应用程序甚至知道 y.aar 的存在而只包含 x.aar。在构建 x.aar 的 build.gradle 中,我添加了 compile project (':y') 作为依赖项,但我看到没有任何资源/清单被合并到 x.aar 中。
    • 我的回答仍然有效,但您需要远程发布您的 Y 库,以便在添加 X 库时,gradle 也会获取 Y。我不知道其他解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    相关资源
    最近更新 更多