【发布时间】:2019-03-25 01:48:41
【问题描述】:
我正在从事一个包含 3 个模块的项目,如下所示:
Project
|
|-- Common
|
|-- SDK
|
|-- App
Common 是一个所有其他模块都依赖的 Android 库模块,但我不必在任何地方发布它,因为它只包含其他模块的通用代码。另一方面,SDK 是另一个必须在我们内部工件上发布的 Android 库项目。
App 是 SDK 的一个示例项目。我可以毫无问题地发布 SDK 工件,但是当我在客户端应用程序中导入它时,编译失败,因为找不到 Common 模块中的任何类。
对于 SDK 模块所依赖的第三方依赖项,我使用 implementation(例如 implementation 'com.squareup.okhttp3:okhttp:3.11.0' 并且所有这些依赖项都已成功添加到 SDK POM 文件中)以及对 Common 模块的依赖项我使用implementation project(path: ':Common')。
在导入SDK 库的客户端应用程序中,编译器显示以下错误
Error: cannot access Foo
class file for com.acme.Foo not found
(Foo是Common模块中的一个类)
为什么当我导入 SDK 时,没有找到来自 Common 模块的类?我期望编译器将两个模块合并为一个模块。有谁知道我如何解决这个问题?
(我知道一个解决方案是在工件上发布Common,但我不想这样做,因为这只是内部通用代码)。
【问题讨论】:
-
您是否尝试清理和重建您的项目?也许使缓存无效并重新启动?
标签: android gradle android-gradle-plugin dependencies android-library