'Failed to load library from git in androidStudio

I'm trying to barteksc/AndroidPdfViewer in my android project but it fail to load the lib and I can't figure out why... Any Idea?

Here's my config : build.gradle (:app)

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'jacoco'
    id 'com.google.gms.google-services'
    id 'dagger.hilt.android.plugin'

}

apply plugin: 'kotlin-kapt'

android {
    compileSdk 31

    defaultConfig {
        applicationId "com.github.multimatum_team.multimatum"
        minSdk 26
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "com.github.multimatum_team.multimatum.MultimatumTestRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug {
            testCoverageEnabled true
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }

    testOptions {
        unitTests {
            includeAndroidResources = true
            returnDefaultValues = true
        }
    }
    testCoverage {
        jacocoVersion = "0.8.7"
    }
}

dependencies {
    implementation fileTree(dir: "libs", include:["*.jar"])
    implementation 'com.github.barteksc:android-pdf-viewer:3.2.0-beta.1'
    implementation 'com.google.code.gson:gson:2.8.9'
    implementation "androidx.preference:preference-ktx:1.2.0"
    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.4.1'
    ....
    testImplementation 'org.mockito:mockito-core:4.4.0'
    testImplementation 'com.linkedin.dexmaker:dexmaker-mockito:2.28.1'
}

tasks.withType(Test) {
    jacoco.includeNoLocationClasses = true
    jacoco.excludes = ['jdk.internal.*']
    jacoco.includes = ["com.application.*"]
}

task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'createDebugCoverageReport']) {
    reports {
        xml.enabled true
        html.enabled true
    }

    def fileFilter = [
            '**/R.class',
            '**/R$*.class',
            '**/BuildConfig.*',
            '**/Manifest*.*',
            '**/*Test*.*',
            'android/**/*.*',
            // Exclude Hilt generated classes
            '**/*Hilt*.*',
            'hilt_aggregated_deps/**',
            '**/*_Factory.class',
            '**/*_MembersInjector.class'
    ]
    def debugTree = fileTree(dir: "$project.buildDir/tmp/kotlin-classes/debug", excludes: fileFilter)
    def mainSrc = "$project.projectDir/src/main/java"

    sourceDirectories.setFrom(files([mainSrc]))
    classDirectories.setFrom(files([debugTree]))

    executionData.setFrom(fileTree(dir: project.buildDir, includes: [
            'outputs/unit_test_code_coverage/debugUnitTest/testDebugUnitTest.exec',
            'outputs/code_coverage/debugAndroidTest/connected/*/coverage.ec'
    ]))
}

connectedCheck {
    finalizedBy jacocoTestReport
}

// Allow references to generated code
kapt {
    correctErrorTypes = true
}

build.gradle (project

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories{
        google()
    }
    dependencies {
        classpath 'com.google.gms:google-services:4.3.10'
        classpath("com.google.dagger:hilt-android-gradle-plugin:2.38.1")

    }
}

plugins {
    id 'com.android.application' version '7.1.2' apply false
    id 'com.android.library' version '7.1.2' apply false
    id 'org.jetbrains.kotlin.android' version '1.6.10' apply false

}

task clean(type: Delete) {
    delete rootProject.buildDir
}

error : "Could not resolve com.github.barteksc:android-pdf-viewer:3.2.0-beta.1."

I haven't found why I cannot load a library from github. Do I have to use something like jitpack?

I cannot use maven since the lib doesn't support it.



Solution 1:[1]

You can't just link to code in github like that. It needs to be packaged into a library and downloaded in compiled form. You have to use maven or similar repository. Gradle doesn't even know how to download source code from git for a dependency, it only expects packaged code.

I wouldn't use this library in any case. It hasn't been updated in 3 years, and the first line of its readme is that its looking for a new maintainer. And since it has no updates, it didn't find one. I would be vary wary of some random library on github, and doubly wary of one that's not maintained.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Gabe Sechan