Преобразование существующего проекта в проект библиотеки в Android Studio

Как я могу преобразовать существующий проект Android в проект библиотеки Android в Android Studio? В Eclipse это возможно.

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


person vijay    schedule 12.07.2013    source источник


Ответы (5)


В файле build.gradle вашего модуля (не в корневом проекте, если вы используете модули!), просто замените:

apply plugin: 'com.android.application'
// or, if you're on an old version
apply plugin: 'android' // note: this one is deprecated

...с:

apply plugin: 'com.android.library'
// or, if you're on an old version
apply plugin: 'android-library' // note: this one is deprecated

Обратите внимание, что недавно «android» был изменен на «com.android.application», а «android-library» был изменен на «com.android.library». Избегайте использования старых имен в новых проектах.

После обновления файла build.gradle вам следует синхронизировать проект с файлами Gradle (что находится на панели инструментов), так как невыполнение этого может привести к ошибкам и неправильной работе.

Затем Android Studio обновит некоторые файлы, чтобы указать, что модуль теперь является библиотекой; так как это будет добавлено в ваш файл .iml:

<option name="LIBRARY_PROJECT" value="true" />

Как вы, возможно, уже знаете, вы не сможете запустить свой (сейчас) библиотечный проект -- вам нужно будет включить его в проект приложения.

Если вы используете Android Studio 1.0, и вы получаете сообщение «Проекты библиотеки не могут установить applicationId», убедитесь, что в вашем файле сборки Gradle нет applicationId.

person Léo Lam    schedule 20.05.2014
comment
Публикация его как отдельного ответа, потому что редактирование фактического ответа для добавления нескольких деталей, вероятно, слишком сильно изменит его (и, вероятно, будет отклонено, так как он слишком существенный)! - person Léo Lam; 20.05.2014
comment
После этого появится еще одна ошибка: «Библиотечные проекты не могут установить applicationId». Чтобы решить эту проблему, удалите только одну строку из раздела defaultconfig, т.е. укажите идентификатор приложения ссылка. - person SHS; 10.12.2014
comment
@SHS: я не понимаю, что ты имеешь в виду? - person Léo Lam; 10.12.2014
comment
КОМУ: Лео Лам В разделе комментариев переполнения стека нажатие клавиши ввода отправляет незавершенный комментарий. Итак, мой незаконченный комментарий увидели вы. При ошибке ссылки тег applicationid доступен только в том случае, если проект относится к App. В проекте Lib нам нужно удалить тег. Приносим извинения за неудобства. - person SHS; 10.12.2014
comment
@SHS Спасибо! Я добавил информацию в ответ. Обратите внимание, что с 50 повторениями теперь вы можете предлагать правки к сообщениям. - person Léo Lam; 10.12.2014
comment
после того как библиотека сделана, где найти библиотеку в проводнике? - person BlueLeaf; 12.07.2015
comment
У меня есть приложение, которое является библиотекой для других приложений. Я обычно меняю это в Eclipse, используя Project > Properties > Android и (не)щелкая Is Library. Как это сделать в Studio, не редактируя файл build.gradle? - person Luis A. Florit; 08.11.2015
comment
Студия использует файлы .iml для проекта, поэтому вы должны изменить параметр LIBRARY_PROJECT в своем .iml вручную. Хотя не уверен, что это сработает. - person Léo Lam; 08.11.2015
comment
Не уверен, что понял. Я не хочу вручную редактировать файл каждый раз, когда я его обрабатываю... разве для этого нет опции Studio, как в Eclipse? - person Luis A. Florit; 08.11.2015
comment
Приведенные выше рекомендации компилируются без проблем. Но я не могу найти полученный файл библиотеки (.jar). Где мне найти файл библиотеки? - person Hephaestus; 02.04.2016
comment
@LéoLam Я хотел бы повторить вопрос BlueLeaf, поскольку, похоже, он не был рассмотрен. Используя этот метод, где я могу найти скомпилированную библиотеку в файловой иерархии? Я его нигде не вижу - нужно ли что-то еще делать, чтобы получить скомпилированный файл, который можно добавить в другие проекты? - person CaptainForge; 06.07.2016
comment
Я не уверен, изменилось ли это в 2.0. В последнее время я не пользуюсь Studio. Извини. - person Léo Lam; 06.07.2016

Глядя на этот документ http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Multi-project-setup

Я думаю, все, что вам нужно сделать, это добавить это в ваш файл build.gradle,

Создание проекта библиотеки

apply plugin: 'android-library'

По ссылке

Создание проекта библиотеки

Проект библиотеки очень похож на обычный проект Android с некоторыми отличиями.

Поскольку создание библиотек отличается от создания приложений, используется другой подключаемый модуль. Внутри оба плагина используют большую часть одного и того же кода, и оба они предоставляются одним и тем же jar-файлом com.android.tools.build.gradle.

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.6'
    }
}

apply plugin: 'android-library'

android {
    compileSdkVersion 15
}
person Ryan Heitner    schedule 26.11.2013

откройте проект в проводнике, откройте project.properties и попробуйте изменить android.library=true в project.properties

person chanakya    schedule 12.07.2013

Это поздний ответ, но я пытался сделать то же самое. Кажется, ни одно из вышеперечисленных действий не помогло мне, но я нашел это, которое, по моему мнению, работает:

Щелкните правой кнопкой мыши имя проекта -> Пометить каталог как (внизу) -> Корневой источник

Я не знаю разницы между Resources Root и Sources Root и немного погуглил, чтобы найти ответ, но, надеюсь, это правильно. Я просто знаю, что библиотека не должна создавать apk, и после установки этой опции она не может, поэтому я предполагаю, что она работает.

Если кто-то еще знает больше меня, пожалуйста, скажите об этом!

person craned    schedule 07.10.2013

Если вы сделаете это с помощью командной строки, как предлагает chanakya, вам нужно обновить ее с помощью:

android update lib-project \
--target <target_ID> \
--path path/to/your/project

см.: http://developer.android.com/tools/projects/projects-cmdline.html#ReferencingLibraryProject

Это работает для eclipse, но не для android-studio, так как это обновление build.xml.

person spe    schedule 23.08.2013