android 找不到类文件,Android库:当“实现项目”用于库的模块依赖时,找不到类文件...
我正在一个有3个模块的项目中工作,如下所示:Project||-- Common||-- SDK||-- AppCommon是一个Android库模块,所有其他模块都依赖它,但我不必在任何地方发布,因为它只包含其他模块的公共代码.另一方面,SDK是另一个Android库项目,必须在我们的内部工件上发布.App是SDK的示例项目.我能够毫无问题地发布SDK工件,但是当我在客户端应用程序中导入它时,编
我正在一个有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.
标签:android,gradle,android-library,dependencies,android-gradle
来源: https://codeday.me/bug/20190701/1346179.html
更多推荐
所有评论(0)