Android 本地aar库的可传递依赖项

Android 本地aar库的可传递依赖项,android,android-gradle-plugin,aar,Android,Android Gradle Plugin,Aar,我们正在制作一些库,基本上是为我们的API制作的,这将使我们的外部开发人员的生活更加轻松 所以我们创建了一个新的库项目,并将改造和其他一些库作为依赖项 dependencies { compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.google.code.gson:gson:2.6.2' compile 'com.squareup.retrofit2:retrofit:2.0.1' com

我们正在制作一些库,基本上是为我们的API制作的,这将使我们的外部开发人员的生活更加轻松

所以我们创建了一个新的库项目,并将改造和其他一些库作为依赖项

dependencies {
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.squareup.retrofit2:retrofit:2.0.1'
    compile 'com.squareup.retrofit2:converter-gson:2.0.1'
    compile 'com.squareup.okhttp3:okhttp:3.2.0'
}
现在,当我们构建它时,它会生成
aar
文件

但是现在,当我们将
aar
文件放入
libs
目录并将其设置为依赖项时,我们仍然必须在用户的
build.gradle
文件中放入相同的依赖项,这很糟糕。应该从图书馆拿的,对吗

repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile(name: 'ourlibrary', ext: 'aar') {
        transitive = true;
    }
}

如何使
transitive=true
工作?

aar文件不包含嵌套(或)依赖项,也没有描述库使用的依赖项的pom文件

这意味着,如果要使用
flatDir
repo导入aar文件,则还必须在项目中指定依赖项

在您的情况下,由于上述原因,添加
transitive=true
无法解决您的问题

您应该使用maven repository(您必须在私有或公共maven repo中发布该库),您将不会遇到相同的问题。

在这种情况下,gradle使用pom文件下载依赖项,该文件将包含依赖项列表。

为完全相同的问题寻找解决方案,您是如何解决这个问题的?嗨,您能解决这个问题吗?嗨,您是如何解决的?通过将依赖项放到自述文件:-(您能详细说明一下吗“您还必须在项目中指定依赖项”终于出现了。似乎您必须将其发布到某个地方,以使
可传递的
工作。发布到mavenLocal。AAR的可传递文件不工作。
*AAR文件不包含嵌套的(或可传递的)依赖项*
对于Android库的任何本地
libs
文件夹目录都是这样吗?还是通过
gradle
添加的依赖项都是这样?@Abbas我正在寻找一个合适的解决方案,因为我想在一个文件中分发一个库。到目前为止,我找到的唯一解决方案是创建一个胖aar。然而,这可能会让主机应用程序中存在其他依赖项,因此,如果您决定使用它,请务必小心。下面是一个用于执行此操作的脚本的链接:还解释了为什么这是一个坏主意: