2015-03-19 4 views
2

Я использую локальные файлы aar для одного из наших проектов и располагаю ниже Query. У меня есть 2 библиотеки и 1 приложение.Android Gradle Dependency

2 библиотеки: 1. TestLib2 2. TestLib1

1 Приложение: 1. Тест

Я использую AAR файл, созданный для TestLib2 и передать его с помощью flatDir в TestLib1. Я могу без проблем получить доступ к функциям, присутствующим в TestLib2.

Теперь я использую файл aar, созданный для TestLib1, и ссылаюсь на него с помощью flatDir в Test. Я могу получить доступ только к функциям, присутствующим в TestLib1. Для доступа к TestLib2 я должен добавить его в тестовое приложение как еще одну библиотеку.

Так зависимость, как показано ниже:

Test 
|_ TestLib1 
    |_ TestLib2 

ли выше возможно в случае AAR файлов?

Также в settings.gradle файл для TestLib1 я упоминаю включить

include ':app', ':testlib2-debug' 

Где приложение относится к TestLib1

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

Любая помощь на том же очень ценится.

BR, Jayshil

Update 1: Я попытался ниже, а в build.gradle из TestLib1 и испытаний. Все еще не повезло.

dependencies { 
    compile (name:'testlib2-debug', ext:'aar') { 
     transitive = true; 
    } 
} 

И Test App

compile (name:'testlib1-debug', ext:'aar') { 
     transitive = true; 
} 

ответ

2

Так я наконец понял, решение для этого. Он работает для двухуровневой зависимости, упомянутой выше.

Создайте файл фляги для тестирования Lib 2.

task clearJar(type: Delete) { 
    delete 'build/outputs/loggingSDK.jar' 
} 

task makeJar(type: Copy) { 
    from('build/intermediates/bundles/release/') 
    into('build/outputs/') 
    include('classes.jar') 
    rename ('classes.jar', 'testlib2.jar') 
} 

makeJar.dependsOn(clearJar, build) 

С помощью команды

gradle makeJar 

Вы бы получили testlib2.баночка

Скопируйте этот в ваш TestLib1

Используйте команду

gradle assemble 

Это создало бы отладить и выпустить версию

Возьмите отладочную версию и скопировать его в тесте вы могли бы вызывать функции от TestLib1, который, в свою очередь, вызывает функцию TestLib2

Надеюсь, это поможет кому-то, кто ищет такое решение

Смежные вопросы