我曾经使用过一个使用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文件中,如下所示:
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.
解决方法:
It looks like Gradle does not read the dependencies from the AAR library
那是因为AAR文件中没有依赖项.
I tried to generate a POM file, and the dependencies don’t appear in it either
然后,您在如何生成POM文件时出现问题.另外,AFAIK,您需要将AAR及其POM文件放在存储库中,以便Gradle识别POM并使用其中的依赖性信息.