Pasha Oleynik
Pasha Oleynik

Reputation: 515

Error in library built with jitpack: Unable to resolve dependency for ':app@debug/compileClasspath'

I am trying to publish my android library on jitpack.io but when I tried to add dependency to test my artifact I am getting this error:

Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.github.pashaoleynik97:GSBarcodeScannerHelper:0.1.1-alpha.
Open File
Show Details


Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.github.pashaoleynik97:GSBarcodeScannerHelper:0.1.1-alpha.
Open File
Show Details


Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve com.github.pashaoleynik97:GSBarcodeScannerHelper:0.1.1-alpha.
Open File
Show Details


Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve com.github.pashaoleynik97:GSBarcodeScannerHelper:0.1.1-alpha.
Open File
Show Details


Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve com.github.pashaoleynik97:GSBarcodeScannerHelper:0.1.1-alpha.
Open File
Show Details

My gradle files in library project are listed below.

My build.gradle (app):

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.github.pashaoleynik97.gsbarcodescannerhelperdemo"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 2
        versionName "1.1"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation project(':gsbarcodescannerhelper')
}

My build.gradle (gsbarcodescannerhelper):

apply plugin: 'com.android.library'
group='com.github.pashaoleynik97;'

android {
    compileSdkVersion 28



    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 2
        versionName "0.1.1"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.android.support:appcompat-v7:28.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.3.10'
    implementation(name: 'generalscan-sdk-1.0.6', ext:'aar')
}

And finally, my build.gradle (project):

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        flatDir {
            dirs project(':gsbarcodescannerhelper').file('libs')
        }
        maven { url 'https://jitpack.io' }
    }
}

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

I pushed my project on github, created release (through github web interface), then went to jitpack.io and published my library. But when I tried to add this library to my new test project I had errors (listed in top of this post). What I am doing wrong?

UPD

I also tried to add classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' like in this docs: https://jitpack.io/docs/ANDROID/ But result remains the same.

UPD 2

Created issue: https://github.com/jitpack/jitpack.io/issues/3758

Upvotes: 4

Views: 5191

Answers (4)

Túlio Calazans
Túlio Calazans

Reputation: 318

Now it is free only for public repositories... If you put your repository url in https://jitpack.io and looked up, you will see the following message as log:

Subscription not active

Upvotes: 0

Eric B.
Eric B.

Reputation: 4702

This seems to be a persisting issue for a few days, can be found here, the link mentions a workaround here. The workaround is to add www with the jitpack.io. Hence update it to the following:

maven { url 'https://www.jitpack.io' }

Upvotes: 6

portfoliobuilder
portfoliobuilder

Reputation: 7856

Jitpack is very sensative tool. There are a multitude of reasons why this issue comes up. I will try to itemized them.

1) Failing Unit Tests; if you have any failing unit tests, you will be able to create the artifact on jitpack (with no reported issues) but will be unable to reference the artifact. Make sure all your unit tests are working properly.

2) It is advisable that you include in your project level gradle for the project intended to be the artifact, the following:

Top of Project Level Gradle

apply plugin: 'maven-publish'
group = '<add-your-package-name-here>'

and at the very bottom of your project level gradle include

apply from: 'https://raw.githubusercontent.com/sky-uk/gradle-maven-plugin/master/gradle-mavenizer.gradle'

Now generate an artifact and see if the reference works

3) Private artifact? Maybe you are not referencing your artifact correctly. If your repo is private, be sure to add the auth token in gradle.properties and then reference it on the project level gradle like this,

gradle.properties

authToken=jp_myfake_token

Project Level Gradle:

maven {
            url "https://jitpack.io"
            credentials{ username authToken }
        }

4) Wait a hour. For whatever reason there is syncing and caching issues with Jitpack. Sometimes all you have to do is wait a hour (or two) and everything starts to work.

Hopefully one of these will help you resolve your issue. Jitpack has easy setup, but it is buggy.

Upvotes: 1

Hasan Mhd Amin
Hasan Mhd Amin

Reputation: 407

make sure that you add maven { url "https://jitpack.io" }

in build.gradle (Project Level) like this:

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

also, make sure that's your Gradle offline mode is disabled

Upvotes: 0

Related Questions