Зависимости модуля Android Studio не видны в другом модуле - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть модуль под названием «Общий» в качестве библиотеки, у этого модуля есть несколько зависимостей, таких как: com.badlogicgames.gdx, com.squareup.wire и т. Д. И он отлично работает, я использую их внутри этого модуля.

ИУ меня есть другой модуль под названием «Отслеживание», где у меня в градле:

dependencies {
  compile project(':Common')
}

И если я попытаюсь импортировать какой-либо открытый класс модуля «Общий», он будет работать нормально, но если я попытаюсьимпортируйте любой класс библиотеки com.badlogicgames.gdx или com.squareup.wire, он говорит мне «Не удается разрешить символ ...» и выделите его красным.И нет автозаполнения кода для таких классов.

Однако проект компилируется и запускается на устройстве без ошибок.

Кто-нибудь есть идеи?Я попытался «очистить и восстановить» для проекта, «сделать недействительными денежные переводы и перезапустить» для Android Studio.Ничего не помогает.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Решение

Изменить компиляцию на API

dependencies {
  api project(':Common')
}

Причина

Поскольку компилировать устарела, поэтому рассматривается как реализация .FYI compile и api (новое ключевое слово для компиляции) одинаковы, в которых видны все внутренние модули.Но новый gradle-проект, имеющий ключевое слово compile , рассматривается как реализация .и в реализации внутренние модули не видны основному проекту.

Предложение

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

0 голосов
/ 22 ноября 2018

в модуле common вам нужно объявить эти переходные зависимости как api, чтобы представить их другим модулям:

например, common / build.gradle:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    api 'com.squareup.wire'
}

https://jeroenmols.com/blog/2017/06/14/androidstudio3/

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