How to include dependency into an AAR library

65 Views Asked by At

I have an AAR file that use dependencies like "Glide", when building AAR file and use it in another android project it works fine until open the fragment which use Glide and this error appears "java.lang.NoClassDefFoundError: Failed resolution of: Lcom/bumptech/glide/Glide;"

I tried to use the following task but it didn't solved anything

task copyLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

this is my library build.gradle file

plugins {
    id("com.android.library")
    id("kotlin-android")
    id("kotlin-kapt")
}
android {
    namespace = "com.brightskiesinc.mangmapp"
    compileSdk = 34

    packagingOptions {
        pickFirst("$project.rootDir/build/outputs/aar/**")
    }

    defaultConfig {
        minSdk = 21
        targetSdk = 34
        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }

    buildFeatures {
        viewBinding = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

dependencies {

    implementation("androidx.core:core-ktx:1.12.0")
    implementation("androidx.appcompat:appcompat:1.6.1")
    def lifecycle_version = "2.6.2"
    implementation("androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version")
    implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version")
    implementation("com.google.android.material:material:1.10.0")
    implementation("androidx.lifecycle:lifecycle-extensions:2.2.0")

    def nav_version = "2.7.5"
    // Kotlin
    implementation("androidx.navigation:navigation-fragment-ktx:$nav_version")
    implementation("androidx.navigation:navigation-ui-ktx:$nav_version")

    // dagger 2
    def daggerVersion = "2.49"
    implementation("com.google.dagger:dagger-android:$daggerVersion")
    kapt("com.google.dagger:dagger-compiler:$daggerVersion")
    kapt("com.google.dagger:dagger-android-processor:$daggerVersion")

    implementation('com.github.bumptech.glide:glide:4.16.0')
  
    implementation("com.github.PhilJay:MPAndroidChart:v3.1.0")
}
configurations.implementation.setCanBeResolved(true)
configurations.api.setCanBeResolved(true)


tasks.register('copyLibs', Copy) {
    from configurations.implementation
    into 'libs'
}
tasks.named("build") {
    dependsOn("copyLibs")
}

What is wrong?

0

There are 0 best solutions below