我正在尝试创建一个 Android 库 myLibrary,它将作为 AAR 交付给我公司的其他人。
myLibrary 的许多依赖项都是用于与手机硬件通信的 API(条形码扫描等)。这些第三方库之一需要使用 将其添加到您的项目中。只编译 而不是 实现 ,因为提供的 JAR 文件包含 stub 实现;完整的实现由设备提供。
在我的库模块的 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 才能使这种方法可行?
谢谢。
最佳答案
注意:您不能将 compileOnly 配置与 AAR 依赖项一起使用。
引用:https://developer.android.com/studio/build/dependencies
我觉得可能是jar包的资源造成的,只编译classes文件是可以的,但是资源呢
关于android - 如何在 AAR 中提供 compileOnly 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52824687/