【发布时间】: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
标签: android gradle android-library