使用符号ext:'aar'或@aar添加库不会导入传递依赖项

时间:2017-10-17 16:53:48

标签: android gradle android-gradle android-library

我通过将我的应用程序转换为库来标记应用程序,并且我有一个配置文件,该文件传递给库以更改颜色,添加新的加载动画,更改一些文本等。库具有所有这些上面列出的依赖项。当我将库导入新应用程序时,由于新应用程序只是库的一种变体,因此除非我也导入这些依赖项,否则它将无法编译。

我使用以下方法添加了自定义库:

compile(group: 'com.lib.libcore', name: 'libcore', version: '1.0.35', ext: 'aar', classifier: '')

<{1>}中的

但它仍然迫使我包含库中的所有依赖项。

我想知道是否有人知道为什么我需要在我的应用中包含我的自定义库中的所有依赖项。

所以我有这些依赖项:

build.grdle

当我使用gradle导入库时,我还需要在app gradle文件中包含所有这些依赖项。有没有人知道如何在没有应用程序失败的情况下将其从应用程序gradle中删除?

2 个答案:

答案 0 :(得分:3)

之所以发生这种情况,是因为您使用的是符号ext: 'aar'

 compile(group: 'com.lib.libcore', name: 'libcore', version: '1.0.35', ext: 'aar', classifier: '')

它是相同的:

compile('com.lib.libcore:libcore:1.0.35@aar')

您可以查看official doc:

  

仅工件表示法创建模块依赖项,该依赖项仅下载具有指定扩展名的工件文件。忽略现有的模块描述符。

这意味着您只想下载aar工件,而不是依赖项。

只需删除相关信息中的符号ext: 'aar'@aar即可。

答案 1 :(得分:0)

如果您想在项目中使用自定义库,则必须将其作为依赖项添加到 build.gradle (模块:应用)