Пакет сторонней библиотеки в моем.aar
Я создаю библиотеку Android для потоковой передачи музыки. В качестве зависимости используется ExoPlayer (кстати, отличная библиотека!).
Мы используем эту библиотеку для другого проекта, который мы также разрабатываем прямо сейчас, в Xamarin. В настоящее время нам нужно добавить обе библиотеки (мой.aar и.jar для ExoPlayer). Это немного раздражает, если честно, я хотел бы просто заскочить в мой дом и уйти.
Итак, два вопроса:
- Есть ли способ, которым я могу связать ExoPlayer внутри моего.aar, используя gradle и прочее? (Я довольно новичок здесь, будьте внимательны, пожалуйста)
- Я понимаю, что это может быть не лучшим решением (зависимость должна управляться приложением, бла-бла-бла), но на самом деле мы всегда будем тестировать 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. Он поддерживает более продвинутые функции, но не все из них работают (вам нужно попробовать его для вашего конкретного случая использования и посмотреть, работает ли он)