Android Studio не может разрешить символы для составной зависимости includeBuild в java подмодуле библиотеки - PullRequest
2 голосов
/ 24 апреля 2020

У меня есть проект android, в котором модуль: app использует библиотечный модуль java: ядро, которое содержит бизнес-логи c, а не код android. Модуль: core зависит от библиотеки java (в моем случае Smack), которую я заменил с помощью функции составной сборки gradle (includeBuild).

Сборка и запуск приложения (как через AS, так и с использованием gradle) только) работает как шарм, однако Android Studio жалуется, что классы Smack не могут быть найдены в модуле: core. Поэтому при кодировании в модуле: core у меня нет автозаполнения и лотов или предупреждений в IDE. При наведении курсора на импорт Smack выдается сообщение об ошибке «Не удается разрешить символ». Однако зависимость можно разрешить из модуля: app.

AS предлагает добавить зависимость проекта от Smack, однако это приводит к тому, что gradle больше не сможет ее разрешить. Это также не то, как я до сих пор понимал составные сборки.

Я подозреваю, что AS каким-то образом ошибается в Smack для библиотеки Android, поэтому он позволяет только: app-модулю разрешить ее. Что говорит в пользу этой теории, так это то, что если я изменяю: ядро ​​на android, библиотека разрешает работу как задумано.

Если я собираю аналогичную установку (без частей android) в Intellij, все работает как ожидается.

Я уже пробовал использовать разные версии Gradle и Gradle в Android Studio, но пока безуспешно. Инвалида кешей и удаление каталогов .AndroidStudioX.X тоже не помогли. Сейчас я использую AS 3.6.3.

Я также уже пробовал ручную замену, как описано здесь .

Минимальный (не) рабочий пример для воспроизведения проблема может быть найдена здесь .

Любая помощь очень приветствуется:)

Редактировать: Связано Android Билет для отслеживания ошибок студии: https://issuetracker.google.com/issues/155690726

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...