Android-библиотека с зависимостями не разрешается должным образом - PullRequest
0 голосов
/ 27 апреля 2019

Итак, у меня есть проект библиотеки 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

1 Ответ

0 голосов
/ 27 апреля 2019

используйте api 'my.project:SimpleWidget:1.2.3' вместо

...