Итак, у меня есть проект библиотеки 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, и все решается, и на самом деле я могу даже без ворчания выкрикивать что-то сверхосновное, например ComplexWidget complexWidget = new ComplexWidget()
.
Однако проект не будет компилироваться.Любой метод ComplexWidget
, который имеет тип возвращаемого значения или типа параметра SimpleWidget
(например, многие из унаследованных методов, или интерфейс, который принимает аргументы SimpleWidget
, или Factory, который возвращает SimpleWidget
экземпляры), не будет компилироваться, и AndroidСтудия жалуется, что «Не удается получить доступ к my.project.SimpleWidget».
Не уверен, стоит ли мне даже упоминать это из-за страха запачкать воду, но если я прикажу команду, нажмите SimpleWidget
, например, public class ComplexWidget extends SimpleWidget
, В верхней части файла появляется предупреждение, что «Исходный код библиотеки не совпадает с байт-кодом для класса SimpleWidget».
Есть идеи?
TYIA