【问题标题】:How to provide a compileOnly dependency in an AAR?如何在 AAR 中提供 compileOnly 依赖项?
【发布时间】:2019-03-20 08:25:12
【问题描述】:

我正在尝试创建一个 Android 库 myLibrary,它将作为 AAR 交付给我公司的其他人。

myLibrary 的许多依赖项都是用于与手机硬件通信(条形码扫描等)的 API。这些第三方库之一需要使用 compileOnly 而不是 implementation 将其添加到您的项目中,因为提供的 JAR 文件包含存根实现;完整的实现由设备提供。

在我的库模块的 build.gradle 中:

implementation files('libs/Vendor1.jar')
implementation files('libs/Vendor2.jar')
compileOnly files('libs/Vendor3.jar')

在本例中,Vendor3 对设备硬件的 API 是 compileOnly。

我的用例是我希望 myLibrary 的使用者能够扩展我提供的功能。这意味着,如果我有一个 MyCoolVendor3Class 并且他们想要扩展它并自定义它的某些方面,他们将无法触及 Vendor3 API。

如何在不使用实现的情况下向库的使用者提供 myLibrary 的依赖 compileOnly API?或者他们是否需要最终使用 Vendor3 Jar 才能使这种方法可行?

谢谢。

【问题讨论】:

  • 你解决了吗?
  • 我没有。我暂时假设库的使用者如果需要访问该 API,则需要自己直接解决 compileOnly 依赖项。

标签: android gradle android-gradle-plugin android-library


【解决方案1】:

注意:您不能将 compileOnly 配置与 AAR 依赖项一起使用。 参考:https://developer.android.com/studio/build/dependencies

我觉得可能是jar包的资源造成的,只编译classes文件是可以的,但是资源呢

【讨论】:

    猜你喜欢
    • 2018-06-05
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 2020-12-01
    • 2014-11-06
    相关资源
    最近更新 更多