Постановка проблемы: Android Приложение (5) не сможет загрузить внешнюю зависимость (1), объявленную в Android Библиотечный проект (2)
Пожалуйста, обратитесь Диаграмма шаг за шагом, чтобы прийти к постановке проблемы.
- Я получил highcharts-release.aar
- У меня есть один android проект библиотеки
- Я буду добавлять highcharts-release.aar (1) к (2) в качестве внешней зависимости
![added .aar into libs folder](https://i.stack.imgur.com/u5tyj.png)
и добавлю этот код в Project > build.gradle
flatDir {
dirs 'libs'
}
и, модуль> build.gradle
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
compile(name:'highcharts-release', ext:'aar')
.....
}
для публикации sh для артефакта,
publishing {
publications {
aar(MavenPublication) {
groupId packageName
version = libraryVersion
artifactId project.getName()
// Tell maven to prepare the generated "*.aar" file for publishing
artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")
pom.withXml {
def dependencies = asNode().appendNode('dependencies')
configurations.getByName("releaseCompileClasspath").getResolvedConfiguration().getFirstLevelModuleDependencies().each {
def dependency = dependencies.appendNode('dependency')
dependency.appendNode('groupId', it.moduleGroup)
dependency.appendNode('artifactId', it.moduleName)
dependency.appendNode('version', it.moduleVersion)
}
}
}
}
}
artifactory {
contextUrl = 'https://url/artifactory'
publish {
repository {
repoKey = 'csapx-ui-gradle-stable-local'
username = 'uname'
password = 'pword'
}
defaults {
// Tell the Artifactory plugin which artifacts should be published to Artifactory
publications('aar')
publishArtifacts = true
// Properties to be attached to the published artifacts
properties = ['qa.level': 'basic', 'dev.team': 'core']
// Publish generated POM files to Artifactory (true by default)
publishPom = true
}
}
}
Я могу видеть, как .aar создается в jFrog. Я преобразовал в формат .zip, чтобы увидеть содержимое, и вижу внешнюю зависимость "highcharts-release.aar", присутствующую в папке libs.
5.Включить / Использовать этот артефакт в проекте приложения Android, добавив реализацию @ module gradle.
implementation(group: 'com.karthik.mylibrary',
name: 'app', version: "$rootProject.ext.highchartsVersion", ext: 'aar') {
exclude group: 'com.google.code.gson', module: 'gson'
transitive = true
changing = true
}
и,
project gradle:
buildscript {
repositories {
google()
jcenter()
maven {
credentials {
username 'uname'
password 'pword'
}
url "https://url/artifactory/csapx-ui-gradle-stable-local"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:4.8.1'
classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
ext {
// highcharts
highchartsVersion = '1.0.0'
}
allprojects {
repositories {
google()
jcenter()
maven {
credentials {
username 'uname'
password 'pword'
}
url "https://url/artifactory/csapx-ui-gradle-stable-local"
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Наконец, создайте приложение android, чтобы увидеть ошибку,
![failed to load library](https://i.stack.imgur.com/cXEX9.png)
Итак, проблема в том, что highcharts-release.aar> добавление в другой .aar> импорт в приложение не выполняется.
Не могу найти то, что мне здесь не хватает и / или как решить эту проблему.
Пожалуйста, помогите мне найти решение.