Подтвердить что ты не робот

Проект библиотеки Android с помощью Android Studio

На этот вопрос мог бы быть дан ответ, но он не нашел подходящего.

Я хочу знать, как создать общий проект библиотеки утилит в Android Studio. Я хочу написать некоторые общие классы и некоторые распространенные методы в них для использования в проектах приложений Android. Наверное, нравится, как DLL в мире Windows - это набор общих методов, которые могут использоваться несколькими пользователями.

Спасибо заранее.

4b9b3361

Ответ 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.