【问题标题】:Android: How to build AAR's dependencies into APK?Android:如何将 AAR 的依赖项构建到 APK 中?
【发布时间】:2017-04-13 01:54:04
【问题描述】:

我有一个具有依赖项 A 和 B 的 AAR。现在我将此 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 不依赖 Picasso,但我在 AAR 中使用了 Picasso。

所以我的问题是,我如何构建 AAR,以便在针对 AAR 构建 APK 时,它也会自动获取 AAR 的依赖项。我试过transitive = true,不行。

【问题讨论】:

    标签: android gradle android-gradle-plugin build.gradle gradlew


    【解决方案1】:

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

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

    另一种方法是在 ma​​ven 存储库(公共或私有)中发布库。在这种情况下,带有 pom 文件的 Gradle 也能够下载依赖项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-06
      • 2016-01-31
      • 2017-05-14
      • 2017-03-03
      • 1970-01-01
      • 2013-01-25
      相关资源
      最近更新 更多