2017-04-13 116 views
3

我有一个具有依赖关系A和B的AAR。现在我将这个AAR添加为APK的依赖关系的一部分。Android:如何在APK中构建AAR的依赖关系?

所以在APK中的build.gradle,我有:

compile(name:'MyAAR', ext:'aar') 

这工作得很好,并成功建立。但问题是,当我实际测试的应用程序,我有致命的异常这样的:

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/squareup/okhttp/OkHttpClient; 
     at com.squareup.picasso.OkHttpDownloader.defaultOkHttpClient(OkHttpDownloader.java:31) ... 

这是因为APK不会对毕加索的依赖,但我用毕加索在我的AAR。

所以我的问题是,我该如何构建AAR,以便在APK针对AAR构建时,它也会自动采用AAR的依赖关系。我试过transitive = true,不工作。

回答

0

aar文件doens不包含的传递依赖关系。
另外它没有描述依赖关系的pom文件。 transitive=true是默认值,它告诉Gradle下载在pom文件中指定的依赖关系。这是它的原因,因为它不适用于你的情况。

在你的情况下,你必须添加其他依赖build.gradle文件。

另一种方法是将库发布在maven资源库(公共或私有)中。在这种情况下,使用pom文件进行Gradle也可以下载依赖关系。