具有依赖关系的 Android 库无法正确解析
Posted
技术标签:
【中文标题】具有依赖关系的 Android 库无法正确解析【英文标题】:Android library with dependency not resolving properly 【发布时间】:2019-09-16 12:42:36 【问题描述】:所以我有一个 android 库项目,SimpleWidget
。我将它发布到 jcenter。
我可以创建一个新项目并添加implementation 'my.project:simplewidget:1.2.3'
,一切正常,我可以使用SimpleWidget
实例及其公共API。
现在我创建了另一个 Android 库项目,ComplexWidget
。 ComplexWidget
是 SimpleWidget
的子类。我将 implementation 'my.project:simplewidget:1.2.3'
添加到 build.gradle 中,一切都解决了,事实上,我什至可以不用 lint 大喊像 ComplexWidget complexWidget = new ComplexWidget()
这样的超级基本的东西。
但是,项目不会编译。任何返回或参数类型为SimpleWidget
的ComplexWidget
方法(例如,许多继承的方法,或接受SimpleWidget
参数的接口,或返回SimpleWidget
实例的工厂)都不会编译并且Android Studio 抱怨“无法访问 my.project.SimpleWidget”。
我不确定是否应该提及它,因为害怕弄脏水,但是如果我命令单击 SimpleWidget
在例如 public class ComplexWidget extends SimpleWidget
中,我会在文件顶部收到警告“库源确实与 SimpleWidget 类的字节码不匹配”。
有什么想法吗?
TYIA
【问题讨论】:
尝试使用api
而不是implementation
【参考方案1】:
改用api 'my.project:SimpleWidget:1.2.3'
【讨论】:
以上是关于具有依赖关系的 Android 库无法正确解析的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio 3.0:无法解析:app@dexOptions/compileClasspath'的依赖关系:无法解析项目:animators