我有一个AAR,它有依赖关系A和B.现在我将这个AAR添加为APK的依赖项的一部分。
所以在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 :(得分:0)
aar文件不包含传递依赖项
它也没有一个描述依赖关系的pom文件。 transitive=true
是默认值,它告诉Gradle下载pom文件中指定的依赖项。这是因为它在你的情况下不起作用。
在您的情况下,您必须在build.gradle
文件中添加其他依赖项。
另一种方法是在 maven存储库(公共或私有)中发布库。在这种情况下,使用pom文件的Gradle也可以下载依赖项。