Несколько файлов AAR

Я использую Android Studio 1.2

Я создаю частную библиотеку, я хочу использовать ее в другом приложении.

Чтобы использовать его, я создаю файлы AAR, но этот AAR не работает. У меня в моей библиотеке зависимость от файла AAR.

В файлах AAR нет зависимостей?

Если я использую jar, и я включаю ans, создайте все зависимости, которые проект отлично работает.

ПРИМЕЧАНИЕ.

Я знаю, как импортировать файл AAR. Проблема заключается в использовании AAR в AAR..

Спасибо.

Ответ 1

Если я правильно понимаю ваш вопрос, есть 3 проекта:

Проект библиотеки 2 → Проект библиотеки 1 → Проект приложения

Вы редактируете "Проект библиотеки 1" и добавили к нему приложение /build.grade зависимости от проекта библиотеки 2. Что-то вроде этого: compile 'com.arasthel:gnavdrawer-library:1.1.5'

Я не уверен, где вы столкнулись с проблемой, но я все равно попытаюсь ответить. Если я полностью вне базы, не могли бы вы рассказать о том, как зависимость AAR не работает? Любые сообщения об ошибках?, класс/ресурс не найден и т.д.

Я думаю, маловероятно, что вы не можете использовать класс из Библиотечного проекта 2 внутри Библиотечного проекта 1, потому что я просто пробовал это сам и, похоже, работает нормально. Стоит отметить, что файл aar файла библиотеки Project НЕ включает классы или ресурсы из Библиотечного проекта 2. Проект библиотеки 2 будет отмечен как зависимость в проекте библиотеки 1 pom if опубликованный с использованием gradle плагина maven для публикации проекта библиотеки 1.

Я предполагаю, что у вас возникла проблема в Application Project? Возможно, класс из Библиотечного проекта 2 не найден в проекте приложения? Если это правильно, то есть два возможных решения:

  • Включить транзитивные зависимости от зависимости aar в приложении приложения app/build.gradle: вместо compile 'com.example:myLibrary:versionX' сделать его compile('com.example:myLibrary:versionX'){transitive=true}. Я просто проверил, что это приводит к тому, что gradle читает библиотечный проект 1 pom и автоматически добавляет найденные там зависимости в Application Application.

    Если вы хотите использовать транзитивные зависимости, ваш проект библиотеки должен будет генерировать pom и публиковать его вместе с aar. См. fooobar.com/questions/45050/... для получения дополнительной информации о том, как я это работаю.

  • Вручную добавьте зависимость от Библиотечного проекта 2 в проект приложения - чтобы ваше приложение имело строку зависимости для обоих библиотек. В зависимости от конкретной ситуации это может быть или не быть приемлемым решением.

Ответ 2

Вы можете импортировать и использовать библиотеку через gradle.

В библиотеке gradle добавьте android_apply_plugin.

Например:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"


    repositories {
        mavenCentral()
    }

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

В вашем приложении gradle файл (я думаю, приложение импортирует ваш библиотечный модуль), добавьте dependecy в вашу библиотеку.

Например:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile project (':httpService') //or whatever your module name is
}

Удачи!

Ответ 3

Добавьте следующий код в файл проекта build.gradle, и вы должны поместить файл AAR в папку libs.

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

И, наконец, добавьте компилирую информацию в свои зависимости:

dependencies {
    compile(name:'AARFileName', ext:'aar')
}