android - 无法从android项目编译aar的传递依赖

标签 android gradle android-gradle-plugin

有一些关于 gradle 中的传递依赖的问题,但没有一个能解决我的问题。

我采取了以下步骤:

  • 创建了一个新的 Android Studio 项目:一个 .
  • 创建了一个新的“Android 库”模块:在那个项目中。
  • 在模块 B 的 build.gradle 中添加了一个依赖项:
    compile ('com.abc:sdk:0.8.0@aar')
    
  • 在应用程序级别 build.gradle 中添加了一个依赖项:
    compile project(":B")
    

    在这一步之后,Android Studio 自动为 生成了一个 AAR 文件。乙 .
  • 创建了另一个 Android Studio 项目:B 并将此 AAR 文件作为模块导入到此项目中。

    项目 A 中一切正常。但我得到了 NoClassDefFoundError当我尝试运行项目 B 时。

  • 显式添加的依赖abc:sdk 在项目 B 中解决了这个问题,但我的目的是编译 abc:sdk 而不显式添加对项目 B 的依赖项。

    最佳答案

    aar 文件 不包含 传递依赖。

    这意味着,如果您要导入 aar 文件,您还必须在项目中指定依赖项。

    使用 Maven 存储库,您将不会遇到同样的问题。
    Gradle 使用 pom 文件下载依赖项。

    关于android - 无法从android项目编译aar的传递依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32694845/

    相关文章:

    来自 Google Play 控制台的 java.lang.IllegalStateException 崩溃报告

    android - Fabric Debug Craslytic Reports : Signup, build Id 丢失,应用插件 : io. fabric

    java - 如何让 IntelliJ IDEA 从 Gradle 配置中尊重 user.language 和 user.country?

    android - Gradle 不更新

    android - 2.2 横向模式下的模拟器

    android - 在UI测试期间启动后,应用程序关闭

    java - Gradle Android 依赖产品风格

    Android 构建错误 : Attribute Signature requires InnerClasses attribute. 检查 -keepattributes 指令

    java - 随机字符串在 gradle 缓存目录中作为 MD5 代码的子目录名称是什么意思?

    c# - 在 Unity3D 中创建 Android XMPP 聊天客户端的最佳方式