Создание модуля в виде библиотеки очень полезно если планируется переиспользовать какой-либо кусок кода в других проектах, либо просто для более логичной организации структуры сложных проектов.
Для создания модуля в
Android Studio выбираете File > New > New Module.
Далее есть 2 варианта. Если вы планируете создать «чистую» java-библиотеку, в
качестве типа указывайте Java Library. Если же вы собираетесь использовать
android-специфичные вещи и вам понадобятся классы из пакетов
android.*
, то создавайте Android Library.
В итоге получается подобная структура (при выборе Java Library структура будет немного проще):
Android Studio при создании модуля зачем-то приводит название к lowercase, но если это принципиально, то после создания его можно переименовать с использованием нужного регистра.
Теперь нужно добавить соответствующую зависимость в build.gradle
зависимых модулей:
dependencies {
...
compile project(":mylib")
}
В целом, на этом можно закончить. Однако если вы планируете использовать очень много сторонних библиотек, подключаемых в виде модулей, то очень скоро в корне проекта может скопиться значительное количество хлама. Поэтому возможно вы захотите организовать структуру получше, и все сторонние модули перенести в одну общую папку.
Для этого создаём целевую папку и перетаскиваем в неё все сторонние модули:
Затем
открываем settings.gradle
и прописываем кастомные пути для всех модулей:
project(':mylib').projectDir = new File('libs/mylib')
project(':anotherlib').projectDir = new File('libs/anotherlib')
Готово.
PS: Есть вариант, что при попытке запуска проекта всё упадёт примерно с такой ошибкой:
Error:Execution failed for task ':app:preDexDebug'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_45\bin\java.exe'' finished with non-zero exit value 1
Такое возникает при использовании JDK8. Придётся откатиться до JDK7 (впрочем, в JDK8 смысла пока нет).