Android studio library project

Рейтинг: 1Ответов: 1Опубликовано: 02.03.2015

У меня есть проект библиотеки. Экспортируется он как .aar файл (новомодный формат библиотек. Градл, наверно, может и обычный jar сбилдить, но мне подходит и так).
Зависит проект от нескольких библиотек, например, таких:

 compile 'com.google.code.gson:gson:2.3.1'
 compile 'com.squareup.dagger:dagger:1.2.2'
 compile 'com.squareup.dagger:dagger-compiler:1.2.2'

Вопрос: Как мне включить эти зависимости в результирующий aar файл? После компиляции в aar находятся только мои классы, а мне надо, чтобы там находились все.

Сразу напишу, зачем мне это нужно:
Мне, по сути, нужно взять все скомпилированные классы (.class), и сделать из них .dex, который будет динамически подключаться к приложению во время выполнения. Это позволяет обновлять исполняемый код без обновления APK файла.

Ответы

▲ 2

Решил проблему следующим извращенным образом:
Создал такую таску в build.gradle

task copyDependencies() {
    doLast {
        copy {
            configurations.getByName("_release").each {
                from(it.absoluteFile.parent)
                into('build/toBeDexed')
                include(it.absoluteFile.name)

            }
        }
    }
}

То есть копирую все зависимости нужной мне конфигурации в папку, потом копирую туда же свой classes.jar, и обрабатываю DX'ом.