Поскольку мне нужно внести некоторые изменения в библиотеку Smack, я хочу добавить Smack как библиотеку в свой проект Android Studio. Я загрузить ZIP-файл с Smack Github repository, и сделал следующие шаги - как я нашел при поиске решенийДобавление библиотеки (Smack) в проект Android Studio
(1) Создана новая папка libs
в моей корневой папке проекта и скопировал извлеченную и переименовала папка /Smack
в libs
. Так что теперь следующая структура:
root/libs/Smack/
(2) Я отредактировал мой settings.gradle
в корневой папке для
include ':app'
include ':libs:Smack'
(3) Via File -> Project Structure -> Modules app -> Dependencies
, я добавил :libs:Smack
в качестве модуля зависимости
(4) Я добавил следующую строку к root/app/build.gradle
compile project(':libs:Smack')
Согласно большинству источников, которые я нашел в Интернете, это должно быть так. Однако, я получил ошибку, что Gradle project sync failed
. Более подробно я получаю:
/path-to-root/libs/Smack/build.gradle
Error:(42, 0) Project with path ':smack-integration-test' could not be found in project ':libs:Smack'.
Когда я смотрю в файл и линии он говорит project(':smack-integration-test')
. Как-то это невозможно найти. Однако есть папка libs/Smack/smack-integration-test
. Это выглядит довольно просто, но я, кажется, пропустил что-то важное здесь.
EDIT: Android-студия на самом деле поддерживает импорт Gradle проектов: File -> New -> New Module
открывает диалоговое окно, в котором я выбираю Import Gradle Project
где я должен выбрать исходный каталог, здесь, Смак. Это делает все правильные входящие заявления в settings.gradle
.
Однако, нет, я получаю ошибку:
Error:(386, 0) Could not get unknown property 'clirr' for project ':smack-integration-test' of type org.gradle.api.Project.
Поскольку я не достаточно хорошо знаком с Gradle, я понятия не имею, что это может означать, и мой поиск Google также не продвигался меня.
Я просмотрел его. Но создание JAR-файла из проекта Gradle кажется не совсем простым. Мне, возможно, придется идти этим путем, я просто надеялся получить быстрое решение, даже если оно грязное, поскольку оно предназначено только для тестирования. – Christian
Я провел тест локально с помощью библиотеки Smack, и это довольно просто, если вы запустите команду gradle в своем корне, он построит все подпроекты. Оттуда вы можете выбрать подходящую для вас банку (ы) из папок сборки – petrumo
Я принял ответ, так как сделал ход таким образом.Я смог создать изменяющиеся файлы jar и импортировать его в свой проект. Однако замените строки 'compile 'org.igniterealtime.smack: smack-android: 4.1.0'' соответствующими 'компиляционными файлами (' libs/... jar ')' строк, в которые были отправлены ошибки в моем исходном коде. Я предполагаю, что существуют разные версии. – Christian