使用JitPack构建的库出现错误:无法解析依赖项“:app@debug/compileClasspath”。

4

我正在尝试在jitpack.io上发布我的Android库,但是当我尝试添加依赖项以测试我的构件时,我遇到了这个错误:

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

我的库项目中的 Gradle 文件如下所示。
我的app中的 build.gradle 文件:
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')
}

我的 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')
}

最后,我的 build.gradle(项目):

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
}

我将我的项目推到了github上,创建了release(通过github的web界面),然后去jitpack.io发布了我的库。但是当我试图将这个库添加到我的新测试项目中时,出现了错误(在本帖子的顶部列出)。我做错了什么吗?
更新:
我也尝试添加类似于文档中的 classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1',链接为 https://jitpack.io/docs/ANDROID/ 但结果仍然相同。
第二次更新:
已创建问题:https://github.com/jitpack/jitpack.io/issues/3758

可能是一个打字错误:group='com.github.pashaoleynik97;'。请移除分号 ; - ישו אוהב אותך
为了使用您的库,应该是 implementation "com.github.pashaoleynik97:gsbarcodescannerhelper:tag" - ישו אוהב אותך
@ישואוהבאותך 是的,我当然做了,而且我也纠正了拼写错误,但没有任何积极的结果。 - Pasha Oleynik
你确认尝试使用了implementation "com.github.pashaoleynik97:gsbarcodescannerhelper:0.1.3-alpha"吗? - ישו אוהב אותך
当然,@ישואוהבאותך。顺便说一下,您可以查看源代码:https://github.com/pashaoleynik97/GSBarcodeScannerHelper 您可以尝试创建新项目并将库添加到依赖项中。 - Pasha Oleynik
@PashaOleynik 你找到答案了吗? - Aman Verma
4个回答

6

最近几天似乎一直存在这个问题,可以在这里找到相关信息。链接中提到了一个解决方法,点击这里可以看到。解决方法是在jitpack.io之前添加www。因此请更新为以下内容:

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

1

Jitpack是一个非常敏感的工具。出现这个问题有很多原因,我将尝试列举它们。

1)单元测试失败;如果您有任何单元测试失败,您将能够在jitpack上创建构件(没有报告的问题),但无法引用该构件。确保您的所有单元测试都正常工作。

2)建议您在打算成为构件的项目的项目级gradle中包含以下内容:

项目级Gradle的顶部

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

在您的项目级别Gradle文件底部添加以下内容。
apply from: 'https://raw.githubusercontent.com/sky-uk/gradle-maven-plugin/master/gradle-mavenizer.gradle'

现在生成一个工件并查看参考是否有效。

3)私有工件?也许您没有正确引用工件。如果您的存储库是私有的,请确保在gradle.properties中添加身份验证令牌,然后在项目级别gradle中像这样引用它:

gradle.properties

authToken=jp_myfake_token

项目级别的Gradle:
maven {
            url "https://jitpack.io"
            credentials{ username authToken }
        }

4) 等待一个小时。由于Jitpack存在同步和缓存问题,有时候你只需要等上一个小时(或两个小时),一切就会开始正常工作。

希望这些方法中的其中一个能够帮助您解决问题。Jitpack的设置很容易,但是存在错误。


0

现在它只对公共存储库免费... 如果您将存储库网址放入https://jitpack.io并查找,您将会看到以下消息作为日志:

订阅未激活


0

请确保您在 build.gradle (项目级别) 文件中添加以下内容:maven { url "https://jitpack.io" }

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

同时确保你的Gradle离线模式已经被禁用


是的,这两个条件都得到满足。 - Pasha Oleynik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接