微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android库:当“实现项目”用于库的模块依赖时,找不到类文件

我正在一个有3个模块的项目中工作,如下所示:

Project
|
|-- Common 
|
|-- SDK
|
|-- App

Common是一个Android库模块,所有其他模块都依赖它,但我不必在任何地方发布,因为它只包含其他模块的公共代码.另一方面,SDK是另一个Android库项目,必须在我们的内部工件上发布.

App是SDK的示例项目.我能够毫无问题地发布SDK工件,但是当我在客户端应用程序中导入它时,编译失败,因为没有找到Common模块中的类.

对于SDK模块依赖的第三方依赖项,我使用实现(例如,实现’com.squareup.okhttp3:okhttp:3.11.0’并且所有这些依赖项已成功添加到SDK POM文件中)以及对Common的依赖性模块我使用实现项目(路径:’:Common’).

在导入SDK库的客户端应用程序中,编译器显示以下错误

Error: cannot access Foo
class file for com.acme.Foo not found

(Foo是Common模块中的一个类)

为什么当我导入SDK时,找不到Common模块中的任何类?我期望编译器将两个模块合并为一个模块.有谁知道如何解决这个问题?

(我知道一个解决方案是在工件上发布Common,但我不想这样做,因为这只是内部公共代码).

解决方法:

通过api项目补充实现项目(路径:’:Common’)(路径:’:Common’)
关于api和实现之间的区别,你可以查看this article.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐