Добавление библиотеки в виде файла AAR в Gradle не может реализовать интерфейсы - PullRequest
0 голосов
/ 25 февраля 2019

Мне было бы проще показать вам, если коротко.

  1. Основное приложение
  2. Созданная библиотека позволяет называть ее ВТОРОЙ
  3. Созданная библиотека списка покупок называется ТРЕТЬЕ

Когда я добавляюмоя ТРЕТЬЯ зависимость от моей ВТОРОЙ библиотеки при использовании реализации в файле gradle, я по какой-то причине не могу реализовать интерфейсы.При использовании api он работает просто отлично.

Кроме того, мы добавляем это, импортируя файлы aar и pom вручную.

Gradle уровня проекта для SECOND

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "$projectDir/../THIRD" }
    }

}

Единственный способ фактически разрешить доступ к интерфейсам - использовать API api ('com.THIRD. @ Aar')

1 Ответ

0 голосов
/ 25 февраля 2019

Это вполне как и ожидалось: объявления от implementation зависимостей библиотеки не видны во время компиляции использования библиотеки и доступны только во время выполнения.

Напротив, api зависимости видны во время компиляции.компиляция использования библиотеки тоже.

Вы должны использовать конфигурацию implementation, только если вы не хотите, чтобы пользователи библиотеки видели объявление из зависимости, что, конечно, не так, если вы ожидаете, чтопользователь может реализовать интерфейс из зависимости.

См .: Конфигурация зависимости Gradle: реализация против API, от времени выполнения только до компиляции

...