所以我有一个 Android 库项目,SimpleWidget
.我将它发布到 jcenter。
我可以创建一个新项目并添加 implementation 'my.project:simplewidget:1.2.3'
一切正常,我可以使用SimpleWidget
实例及其公共(public) API。
现在我制作了另一个 Android 库项目,ComplexWidget
. ComplexWidget
是 SimpleWidget
的子类.我加 implementation 'my.project:simplewidget:1.2.3'
到 build.gradle,一切都解决了,事实上,我什至可以不用 lint 大喊像 ComplexWidget complexWidget = new ComplexWidget()
这样 super 基本的东西。 .
但是,该项目不会编译。任意 ComplexWidget
返回或参数类型为 SimpleWidget
的方法(例如,许多继承的方法,或接受 SimpleWidget
参数的接口(interface),或返回 SimpleWidget
实例的工厂)将无法编译并且 Android Studio 会提示“无法访问 my.project.SimpleWidget”。
不知道我是否应该提到它,因为害怕把水弄混,但如果我命令点击SimpleWidget
例如,public class ComplexWidget extends SimpleWidget
,我在文件顶部收到“库源与 SimpleWidget 类的字节码不匹配”的警告。
有任何想法吗?
TYIA
最佳答案
使用 api 'my.project:SimpleWidget:1.2.3'
反而
关于具有依赖关系的 Android 库无法正确解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55877127/