我曾经使用过使用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。
答案 0 :(得分:5)
看起来Gradle没有从AAR库中读取依赖项
这是因为AAR文件中没有依赖项。
我尝试生成POM文件,依赖项不会出现在其中
然后,您在如何生成POM文件时出现问题。另外,AFAIK,您需要将AAR及其POM文件放在存储库中,以便Gradle识别POM并使用其中的依赖信息。