Пакет сторонней библиотеки в моем.aar

Я создаю библиотеку Android для потоковой передачи музыки. В качестве зависимости используется ExoPlayer (кстати, отличная библиотека!).

Мы используем эту библиотеку для другого проекта, который мы также разрабатываем прямо сейчас, в Xamarin. В настоящее время нам нужно добавить обе библиотеки (мой.aar и.jar для ExoPlayer). Это немного раздражает, если честно, я хотел бы просто заскочить в мой дом и уйти.

Итак, два вопроса:

  1. Есть ли способ, которым я могу связать ExoPlayer внутри моего.aar, используя gradle и прочее? (Я довольно новичок здесь, будьте внимательны, пожалуйста)
  2. Я понимаю, что это может быть не лучшим решением (зависимость должна управляться приложением, бла-бла-бла), но на самом деле мы всегда будем тестировать ExoPlayer и мою библиотеку вместе каждый раз, когда обновляем первый. Так есть ли веская причина, по которой я не должен связывать ExoPlayer в моей библиотеке, или это нормально?

И вот мой текущий файл Gradle. Ничего захватывающего, хотя смотреть. Но когда я преобразовал первоначальное приложение в библиотеку, может быть, есть что-то странное, кто знает...

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

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

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile ('com.google.android.exoplayer:exoplayer:r1.5.6')
    testCompile 'junit:junit:4.12'
    testCompile 'org.mockito:mockito-core:1.10.19'
    compile 'com.android.support:appcompat-v7:23.2.0'
}

0 ответов

Решений для этого нет, пока эта проблема не будет решена, но реальной альтернативой для кого-то может быть объединение .aar (s) единственное использование "Import .JAR/.AAR Package" при нажатии на "New Module".

Единственная проблема с этим подходом состоит в том, что вы можете связывать только 1 AAR за один раз таким образом, поэтому вам нужно создать модуль для каждого из них.


Другой способ - попытаться использовать плагин Mobbeel fat-aar, который вы можете найти здесь:

https://github.com/Mobbeel/fataar-gradle-plugin

Это единственный, который в настоящее время поддерживает Android Gradle Plugin 3.1.X, здесь отслеживается поддержка AGP 3.2 и 3.3. Он поддерживает более продвинутые функции, но не все из них работают (вам нужно попробовать его для вашего конкретного случая использования и посмотреть, работает ли он)


Другие вопросы по тегам