所以我有一个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()
那样超级基本。
但是,该项目不会编译。任何具有ComplexWidget
的返回或参数类型的SimpleWidget
方法(例如,许多继承的方法,或接受SimpleWidget
参数的接口,或返回SimpleWidget
实例的Factory)将无法编译,并且Android Studio会抱怨“无法访问我的。 project.SimpleWidget”。
不知道我是否应该提起它,因为害怕混淆水域,但如果我命令点击SimpleWidget
,例如public class ComplexWidget extends SimpleWidget
,我会在文件顶部发出警告:“库源与类的byetcode不匹配SimpleWidget”。
有任何想法吗?
TYIA
改用api 'my.project:SimpleWidget:1.2.3'