Проект библиотеки Android с помощью Android Studio
На этот вопрос мог бы быть дан ответ, но он не нашел подходящего.
Я хочу знать, как создать общий проект библиотеки утилит в Android Studio.
Я хочу написать некоторые общие классы и некоторые распространенные методы в них для использования в проектах приложений Android. Наверное, нравится, как DLL в мире Windows - это набор общих методов, которые могут использоваться несколькими пользователями.
Спасибо заранее.
Ответы
Ответ 1
Простейший способ сделать это:
-
Щелкните правой кнопкой мыши по открытому проекту в Android Studio и выберите New > Module
-
В левой панели выберите "Библиотека Android" и нажмите "Далее".
-
Введите все данные, отмените действие "Создать", "Тема" и "Все", если это не требуется.
-
Выберите уровень API таким же, как ваш проект, и Next, Next, Next.
Теперь вы увидите другой каталог внутри вашего проекта, build.gradle
для библиотеки будет автоматически настроен для вас.
Если ваше имя модуля/библиотеки "mylibrary" ,
include ':mylibrary'
будет автоматически добавлен в файл settings.gradle внутри корневого каталога вашего проекта.
Теперь откройте основной модуль и вставьте эту строку в блок зависимостей:
compile project(':mylibrary')
Если вы хотите использовать одну и ту же библиотеку в других проектах, вам необходимо скопировать библиотечный модуль в этот конкретный проект с помощью File Explore и настроить settings.gradle и основной модуль . gradle вручную.
Ответ 2
Старый вопрос, но даже сейчас, похоже, это не предложение для библиотек в AndroidStudio. Я уже некоторое время изучал процесс миграции, и вот что я нашел.
Мое "решение"
Допустим, у нас есть библиотека (называемая lib), которая содержит общий код и проект приложения (называемый приложением), который хочет использовать указанный библиотечный код.
Ключ определяет проект в settings.gradle
в корне проекта (/Some/Path/MyProjects/Project/settings.gradle
)
Этот файл должен уже существовать и содержать что-то вроде include ':app'
.
Мы изменим этот файл, чтобы также включить библиотеку И определить библиотеку со следующими двумя строками:
/Some/Path/MyProjects/Project/settings.gradle
...
// tell gradle we want to include a module called 'lib'
include 'lib'
// tell gradle there is a module called 'lib', found in a specific directory
// Note the /app on the end, the project structure wraps a project around a module, you want to refer that module!
project (':lib').projectDir = new File('/Some/Path/MyProjects/Library/app')
...
Также отредактируйте проекты build.gradle /Some/Path/MyProjects/Project/app/build.gradle
, чтобы зависеть от недавно добавленного модуля lib
/Некоторые/Path/MyProjects/проект/приложение/build.gradle`
...
dependencies {
...
compile project (':lib') // we want to depend on our library
}
...
Дополнительные
При работе с несколькими разработчиками или ради гибкости я использую мой gradle.properties
в моем каталоге .gradle
(для систем на основе nix, обычно встречающихся в homedir, не уверен, что Windows ищет его). Do отметить, что вам может понадобиться создать каталог и файл самостоятельно.
В этом файле вы можете создать, если хотите, константы, которые могут использоваться вами во всех ваших файлах gradle. Например, моя содержит что-то вроде следующего:
theconstant=/Some/Path/MyProjects/Library/app
обратите внимание на, казалось бы, отсутствующие кавычки (не уверен, действительно ли это требуется)
Теперь мы можем заменить
project (':lib').projectDir = new File('/Some/Path/MyProjects/Library/app')
с
project (':lib').projectDir = new File(theconstant)
Теперь вы и ваша команда могли определить эту константу (которая может отличаться для каждой машины) и соответственно изменить путь.
профи
- Больше не копировать целые библиотеки!
- Гибкость, вы можете редактировать библиотеку в окне проекта
- Несколько разработчиков, работающих в одних и тех же проектах, могут определять свои собственные пути.
- Библиотека компилируется во время компиляции проектов (
BuildConfig.DEBUG
!)
против
Я не нашел возможности правильно протестировать это, но пока это кажется самым элегантным решением на данный момент! Я хотел бы услышать ваши мысли об этом.
Ответ 3
Я просто делаю:
include '..:commons'
в settings.gradle
и
compile project(':..:commons')
в build.gradle проекта ссылок
чтобы вы могли разместить свой часто используемый lib вне проекта
Ответ 4
Ваш build.gradle должен выглядеть примерно так.
apply plugin: 'android-library'
repositories {
mavenCentral()
}
dependencies {
compile 'com.android.support:support-v4:18.0.0'
}
android {
compileSdkVersion 18
buildToolsVersion '18.1.1'
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
Посмотрите на первую строку
Ответ 5
когда вы создаете новый проект в Android Studio, одним из вариантов является "mark as library".
альтернативно, просто создайте проект, как любой другой. затем, используя его в другом месте, в библиотеке gradle убедитесь, что вы изменили apply-plugin "android"
на apply-plugin "android-library"
и добавили его как зависимость от приложения, которое его использует. Подробнее о том, как добавить созданный проект в виде библиотеки, см. здесь.
Ответ 6
Просто создайте его как обычный проект, если вы хотите использовать его в качестве библиотеки open project structure
в приложении, которое хочет его использовать, и добавить предназначенную библиотеку под Dependencies
.