本地AAR文件不管理依赖项

时间:2015-07-31 11:27:57

标签: android gradle dependencies aar

我曾经使用过使用Retrofit和Joda DateTime的Android库(API客户端)。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'joda-time:joda-time:2.8.1'
}

现在库已经完成了,我把它编译成了一个AAR文件,我想在应用程序中使用它,所以我将它添加到应用程序的libs文件夹中,并将其包含在build.gradle文件中,如下所示: / p>

dependencies {
    compile(name:'s3papiandroidclient', ext:'aar')
    //Some other things
}

但是,当我尝试从库初始化API客户端时,应用程序在从RetroFit或DateTime调用对象时崩溃(例如,retrofit.RestAdapter)。看起来Gradle没有从AAR库中读取依赖项,因此不会在我的应用程序中安装Retrofit和DateTime。我试图在我的AAR文件中使用transitive=true参数,但没有帮助。

可能有帮助的其他方面,我尝试生成POM文件,并且依赖项也不会出现在其中。看起来这些事情真的发生了,我完全坚持了。

我能找到的唯一解决方法是手动将AAR文件中的依赖项添加到应用程序的build.gradle文件中,但它没有意义,我假设Gradle可以自己导入依赖项!

此致

Gyoo。

1 个答案:

答案 0 :(得分:5)

  

看起来Gradle没有从AAR库中读取依赖项

这是因为AAR文件中没有依赖项。

  

我尝试生成POM文件,依赖项不会出现在其中

然后,您在如何生成POM文件时出现问题。另外,AFAIK,您需要将AAR及其POM文件放在存储库中,以便Gradle识别POM并使用其中的依赖信息。