Я новичок в системе сборки Gradle и IntelliJ.
Итак, как мне создать проект библиотеки Android (например, com.myapp.lib1) и проект приложения (например, com.myapp.app) и сделать так, чтобы система сборки включала com.myapp.lib1 в проект приложения?
Я перешел в Project Structure -> Modules -> My App project и добавил зависимость в проект lib. IntelliJ теперь может распознавать классы из проекта lib при использовании в проекте приложения, но когда я запускаю проект приложения, появляются такие ошибки, как:
Gradle: error: package com.myapp.lib1 does not exist
android-studio
Рэнди Сугианто 'Юку'
источник
источник
Ответы:
Чтобы создать библиотеку:
Файл> Новый модуль
выберите библиотеку Android
Чтобы использовать библиотеку, добавьте ее в качестве зависимости:
Файл> Структура проекта> Модули> Зависимости
Затем добавьте модуль (библиотеку Android) в качестве зависимости модуля.
Запустите свой проект. Это будет работать.
источник
Интересно, почему нет примера отдельного проекта фляги?
В eclipse мы просто устанавливаем флажок «Is Library» в диалоге настроек проекта.
В студии Android я выполнил эти шаги и получил файл jar.
Создать проект.
Откройте файл в левом меню проекта. (app / build.gradle): Сценарии Gradle> build.gradle (Модуль: XXX)
изменить одну строку:
apply plugin: 'com.android.application'
->'apply plugin: com.android.library'
удалить applicationId в файле:
applicationId "com.mycompany.testproject"
построить проект: Build> Rebuild Project
тогда вы можете получить файл aar: app> build> output> aar folder
изменить
aar
имя расширения файла наzip
распакуйте, и вы можете увидеть
classes.jar
в папке. переименуйте и используйте его!Во всяком случае, я не знаю, почему Google делает создание банок так хлопотно в Android Studio.
источник
Google Gradle Plugin Рекомендуемый способ настройки файлов Gradle для создания нескольких проектов имеет некоторые недостатки. Если у вас есть несколько проектов, зависящих от одного библиотечного проекта, в этом посте кратко объясняется рекомендуемая Google конфигурация, ее недостатки и рекомендуются другие способы настройки файлов Gradle для поддержка многопроектных настроек в Android Studio:
Альтернативная мультипроектная настройка для андроид студии
Другой путь:
Оказывается, есть лучший способ управлять несколькими проектами в Android Studio. Хитрость заключается в том, чтобы создавать отдельные проекты Android Studio для ваших библиотек и сообщать gradle, что модуль для библиотеки, от которой зависит ваше приложение, находится в каталоге проектов библиотеки. Если вы хотите использовать этот метод со структурой проекта, которую я описал выше, вы бы сделали следующее:
4-й шаг - это сложная часть, поэтому это единственный шаг, который я опишу подробно. Вы можете ссылаться на модули, которые являются внешними по отношению к каталогу вашего проекта, добавив оператор проекта в файл settings.gradle и установив свойство projectDir для объекта ProjectDescriptor, который возвращается этим оператором проекта:
Код, который нужно вставить
settings.gradle
:Если вы сделали это правильно, вы заметите, что модули, на которые ссылается ваш проект, будут отображаться в навигаторе проекта, даже если эти модули являются внешними по отношению к каталогу проекта:
Это позволяет одновременно работать с библиотечным кодом и кодом приложения. Интеграция управления версиями также прекрасно работает, когда вы ссылаетесь на модули таким образом. Вы можете зафиксировать и отправить свои изменения в код библиотеки так же, как вы можете зафиксировать и отправить изменения в код своего приложения.
Этот способ настройки нескольких проектов позволяет избежать трудностей, которые мешают рекомендуемой конфигурации Google. Поскольку мы ссылаемся на модуль, который находится за пределами каталога проекта, нам не нужно делать дополнительные копии библиотечного модуля для каждого приложения, которое зависит от него, и мы можем создавать версии наших библиотек без всякой ерунды из подмодуля git.
К сожалению, этот другой способ настройки нескольких проектов очень трудно найти. Очевидно, это не то, что вы поймете, посмотрев руководство Google, и на данный момент нет способа настроить ваши проекты таким образом, используя пользовательский интерфейс Android Studio.
источник
Проверьте эту ссылку о настройках нескольких проектов .
Некоторые вещи, на которые следует обратить внимание, убедитесь, что ваш файл settings.gradle обновлен и теперь содержит ссылки на модули приложения и библиотеки.
settings.gradle:
include ':app', ':libraries:lib1', ':libraries:lib2'
Также убедитесь, что в build.gradle приложения есть следующее:
Вы должны иметь следующую структуру:
Build.gradle приложения должен использовать
com.android.application
плагин, в то время как build.gradle любой библиотеки должен использоватьcom.android.library
плагин.Среда разработки Android Studio должна обновиться, если вы можете собрать из командной строки с этой настройкой.
источник
Для Intellij IDEA (и Android Studio) каждая библиотека является модулем. Думайте о модуле в Android Studio как о эквиваленте проекта в Eclipse. Проект в Android Studio представляет собой сборник модулей. Модули могут быть работающими приложениями или библиотечными модулями.
Итак, для добавления нового проекта библиотеки Android вам необходимо создать модуль типа «Библиотека Android». Затем добавьте этот библиотечный модуль в список зависимостей вашего основного модуля (прикладного модуля).
источник
Самый простой способ для меня создать и повторно использовать проект библиотеки:
file > new > new module
(и ответить на вопросы пользовательского интерфейса)include ':myLibrary'
проверьте / или добавьте, если в файле build.gradle :
dependencies { ... compile project(':myLibrary') }
Чтобы повторно использовать этот библиотечный модуль в другом проекте, скопируйте его папку в проекте вместо шага 1 и выполните шаги 2 и 3.
Вы также можете создать новый проект приложения студии. Вы можете легко изменить существующий модуль приложения на модуль библиотеки, изменив назначение плагина в файле build.gradle на com.android.library.
в
больше здесь
источник
Вы можете добавить новый модуль в любое приложение, как говорит Бланделл в своем ответе, а затем ссылаться на него из любого другого приложения.
Если вы хотите переместить модуль в любое место на вашем компьютере, просто переместите папку модуля (модули полностью независимы), тогда вам нужно будет обратиться к модулю.
Для ссылки на этот модуль вы должны:
В файле build.gradle вашего приложения добавьте:
В файле settings.gradle добавьте следующее:
источник
project(':library').projectDir = new File('../library')
гдеlibrary
имя папки параллельно папке проекта Android.Не забудьте использовать вместо плагина
apply plugin: 'com.android.library'
свойbuild.gradle
плагин:'com.android.application'
источник
Путь документации
Это рекомендуемый способ согласно совету, приведенному в документации Android Studio.
Создать библиотечный модуль
Создайте новый проект, в который войдет ваша библиотека. Нажмите Файл> Новый> Новый модуль> Библиотека Android> Далее> (выберите имя)> Готово . Затем добавьте все необходимые классы и ресурсы в свою библиотеку.
При сборке модуля будет создан файл AAR. Вы можете найти это в
project-name/module-name/build/outputs/aar/
.Добавьте свою библиотеку в качестве зависимости
Вы можете добавить свою библиотеку в качестве зависимости к другому проекту, например так:
Убедитесь, что в файле settings.gradle указано имя вашей библиотеки.
В файле build.gradle приложения добавьте строку компиляции в раздел зависимостей:
Вот и все. Вы должны быть в состоянии использовать вашу библиотеку сейчас.
Ноты
Если вы хотите, чтобы ваша библиотека была легко доступна для более широкой аудитории, рассмотрите возможность использования JitPac или JCenter .
источник
Возник тот же вопрос и решил его следующим образом:
Начальная ситуация :
Цель : хотите добавить модуль с именем
dataformats
Java Library
)Убедитесь, что вы
settings.gradle
выглядите так (обычно автоматически):include ':frigoshare', ':frigoShare-backend', ':dataformats'
Убедитесь ( вручную ), что
build.gradle
файлы модулей, которые должны использовать вашу библиотеку, имеют следующую зависимость:dependencies { ... compile project(':dataformats') }
источник
Цель: библиотека Android в одном месте - обмен информацией между несколькими проектами http://raevilman.blogspot.com/2016/02/android-library-project-using-android.html
источник
Как вышеупомянутый комментарий, я пытаюсь найти варианты Gradle Build Varians и нашел эту ссылку: http://code.tutsplus.com/tutorials/using-gradle-build-variants--cms-25005 Это очень простое решение. Вот что я сделал: - В build.gradle:
Затем у меня есть еще 2 версии моего приложения: профессиональная и пробная с 2-мя различными именами пакетов, в коде 2 которых указан идентификатор приложения, так что я могу загрузить обе версии в Google Play. Я все еще просто кодирую в разделе "main" и использую getpackageName для переключения между версиями. Просто перейдите по ссылке, которую я дал для деталей.
источник
Есть два простейших способа, если один не работает, попробуйте другой.
ИЛИ
источник
В моем случае я использую MAC OS X 10.11 и Android 2.0 и делаю именно то, что объяснил Акиб Мумтаз.
Но каждый раз у меня было следующее сообщение: « При настройке проекта«: приложение »возникала проблема.> Не удалось оценить модуль xxx: Конфигурация с именем« по умолчанию »не найдена». ».
Я обнаружил, что причина этого сообщения в том, что Android 2.0 не позволяет создавать библиотеки напрямую. Итак, я решил сначала создать проект приложения, а затем изменить build.gradle, чтобы преобразовать его в библиотеку.
Это решение не работает, потому что проект библиотеки сильно отличается от проекта приложения.
Итак, я решил мою проблему следующим образом:
Затем продолжите решение, предложенное Акибом Мумтазом.
В результате исходный код вашей библиотеки будет предоставлен без необходимости дублирования исходных файлов каждый раз (это было ересью для меня!)
Надеюсь, что это поможет вам.
источник