Как включить зависимость модуля библиотеки в проект Android Studio?

Я переношу проект из Eclipse в AndroidStudio. У меня есть проект, используемый в качестве библиотеки в этом проекте. Эта библиотека называется PullToRefresh.

Я пробовал много способов импортировать этот проект в AS, но все, что я пробовал, работает.

В моем проекте у меня есть такая структура папок:

Project Root
+-- app
|   +-- builds
|   +-- libs
|   |   +-- PullToRefresh (my lib project)
|   +-- src
|   |   +-- main (java code and resources)

В build.gradle я пытался сделать это:

dependencies {
    compile project(":libs:PullToRefresh")
}

Но я получаю это сообщение об ошибке:

Gradle 'my_project' project refresh failed: Project with path ':libs:PullToRefresh'
could not be found in project ':app'

person androidevil    schedule 16.01.2014    source источник


Ответы (2)


Android Studio работает с концепцией модулей проекта. Все ваши модули должны находиться в корневом каталоге (каталог вашего проекта). Один модуль может зависеть от другого модуля/модулей. Ваши библиотеки считаются разными модулями в рамках одного проекта, и ваш основной модуль (приложение в вашем случае) зависит от них.

Немного измените структуру вашего проекта:

Project Root
+-- libs
    +-- PullToRefresh (my lib project)
+-- app
|   +-- builds
|   +-- src
|   |   +-- main (java code and resources)
    +-- .....
+--settings.gradle

Включите эту строку в свой settings.gradle

include ':libs:PullToRefresh'

Ваш build.gradle выглядит нормально. Я предлагаю вам изменить имя вашего каталога с libs на библиотеку, потому что используйте libs для вашей зависимости jar, а не для зависимостей модуля.

и сохраните это в файле build.gradle вашего основного модуля:

dependencies {
    compile project(":libs:PullToRefresh")
}
person pyus13    schedule 16.01.2014
comment
Settings.gradle должен быть на уровень каталога выше, непосредственно под корнем проекта. Хотя если он работает, то для меня это загадка. - person Scott Barta; 17.01.2014
comment
@ScottBarta ya :) Кажется, я плохо рисую. На самом деле это выглядит так в студии Android, поэтому я сделал это таким образом, я еще раз проверил, что это неправильно. Я чувствовал то же самое, что вы сказали после публикации. Позвольте мне внести некоторую поправку, если это вводит в заблуждение. - person pyus13; 17.01.2014
comment
@ScottBarta правда! В моем случае settings.gradle на уровень выше. Думаю пюс13 ошибся. - person androidevil; 17.01.2014
comment
Это работает, но теперь «libs» также рассматривается как модуль и отображается в Android Studio. Любая идея, как игнорировать это? - person b005t3r; 20.07.2017

В меню «Справка» найдите «модуль импорта», после чего появится мастер!

person AlinaBM    schedule 07.03.2016
comment
Это сработало для меня, но я не смог найти конфигурацию gradle в результате этого действия. - person JoshuaTree; 26.03.2018