Android Studio的Gradle构建在没有任何代码更改的情况下失败

Android Studio的Gradle构建在没有任何代码更改的情况下失败,android,maven,gradle,Android,Maven,Gradle,我面临一个奇怪的问题。几天前,同样的代码库还在运行,但今天出现了以下错误 Could not find matching constructor for: org.gradle.api.internal.artifacts.ivyservice.ivyresolve.VersionInfo(String) 我找不到这个错误背后的原因。如果你们中有人能帮忙的话,那将是非常有帮助的 请查看以下所需信息 依赖项: dependencies { implementation fileTree(

我面临一个奇怪的问题。几天前,同样的代码库还在运行,但今天出现了以下错误

Could not find matching constructor for: org.gradle.api.internal.artifacts.ivyservice.ivyresolve.VersionInfo(String)
我找不到这个错误背后的原因。如果你们中有人能帮忙的话,那将是非常有帮助的

请查看以下所需信息

依赖项:

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    implementation "com.android.support:appcompat-v7:${rootProject.ext.appCompatVersion}"
    implementation "com.crashlytics.sdk.android:crashlytics:${rootProject.ext.crashlyticsVersion}"
    implementation "com.android.support:design:${rootProject.ext.appCompatVersion}"
    implementation "com.android.support.constraint:constraint-layout:${rootProject.ext.constraintLayoutVersion}"
    implementation "com.android.support:recyclerview-v7:${rootProject.ext.appCompatVersion}"
    implementation "com.android.support:cardview-v7:${rootProject.ext.appCompatVersion}"
    implementation "com.onesignal:OneSignal:${rootProject.ext.onesignalVersion}"
    implementation "com.flaviofaria:kenburnsview:${rootProject.ext.kenburnsViewVersion}"
    implementation "com.firebase:firebase-jobdispatcher:${rootProject.ext.firebaseJobDispatcherVersion}"
    implementation "com.github.bumptech.glide:glide:${rootProject.ext.glideVersion}"

    //google admob
    implementation 'com.google.android.gms:play-services-ads:18.0.0'
    implementation 'com.google.firebase:firebase-messaging:+'
    implementation 'com.android.billingclient:billing:1.1'
    implementation "android.arch.persistence.room:runtime:${rootProject.ext.room_version}"
    annotationProcessor "android.arch.persistence.room:compiler:${rootProject.ext.room_version}"
    implementation "android.arch.lifecycle:livedata:${rootProject.ext.lifecycle_version}"
    annotationProcessor "android.arch.lifecycle:compiler:${rootProject.ext.lifecycle_version}"

    //below is for app tutor view
    implementation "com.github.amlcurran.showcaseview:library:${rootProject.ext.showcaseViewVersion}"

    //below two dependencies are for circular image transformation to gif by glide
    implementation "jp.wasabeef:glide-transformations:${rootProject.ext.glideTransformationsVersion}"
    implementation 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'

    //below dependency is for bookmark star animation
    implementation "com.github.varunest:sparkbutton:${rootProject.ext.sparkButtonVersion}"

    //below dependency is for button with validation animation
    implementation "com.unstoppable:submitbutton:${rootProject.ext.submitButtonVersion}"

    //dependency for firebase auth
    implementation 'com.google.firebase:firebase-core:16.0.3'
    implementation 'com.google.firebase:firebase-auth:16.0.3'
    implementation 'com.google.api-client:google-api-client:1.22.0'
    implementation 'com.google.api-client:google-api-client-android:1.22.0'
    implementation 'com.google.apis:google-api-services-people:v1-rev4-1.22.0'
    implementation 'com.google.android.gms:play-services-auth:16.0.0'

    //dependency for firebase db
    implementation 'com.google.firebase:firebase-database:16.0.2'

    //for signin button google custom
    implementation "com.shobhitpuri.custombuttons:google-signin:${rootProject.ext.googleSigninButtonVersion}"

    //youtube
    implementation files('libs/YouTubeAndroidPlayerApi.jar')

    //support
    implementation "com.android.support:design:${rootProject.ext.appCompatVersion}"

    //webview
    implementation "com.thefinestartist:finestwebview:${rootProject.ext.fineWebviewVersion}"

    //speech to text module
    implementation project(path: ':speech-to-text', configuration: 'default')

    //viewmodel and livedata
    implementation "android.arch.lifecycle:extensions:${rootProject.ext.lifecycle_version}"
    androidTestImplementation 'junit:junit:4.12'

    //memory leaks detection
    debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.3'
    releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.3'

    // Optional, if you use support library fragments:
    debugImplementation 'com.squareup.leakcanary:leakcanary-support-fragment:1.6.3'
    implementation 'com.android.support:multidex:1.0.3'

    //lottie
    implementation 'com.airbnb.android:lottie:2.5.0'
}
版本:

ext {
    compileSdkVersion=28
    minSdkVersion=19
    targetSdkVersion=28
    materialDesignVersion='1.0.0'
    appCompatVersion='28.0.0'
    crashlyticsVersion='2.9.9'
    constraintLayoutVersion='1.1.3'
    onesignalVersion='3.9.1'
    glideVersion='4.9.0'
    firebaseJobDispatcherVersion='0.8.5'
    kenburnsViewVersion='1.0.6'
    room_version='1.1.1'
    lifecycle_version='1.1.1'
    fineWebviewVersion='1.2.7'
    showcaseViewVersion='5.4.3'
    glideTransformationsVersion='3.3.0'
    sparkButtonVersion='1.0.5'
    submitButtonVersion='1.1.3'
    googleSigninButtonVersion='1.0.0'
    lifecycle_version="1.1.1"
}
我正在使用3.4.1的Gradle版本 我尝试了清理项目、重建项目、使缓存无效并重新启动。这些都没用


注:我已经研究过这个问题,我正在使用OneSignal,我需要它。

似乎
OneSignal
插件正在使用内部gradle api(VersionInfo在org.gradle.api.internal包下)。与公共的Gradle API不同,Gradle团队可以在没有警告的情况下更改内部API,并且不保证在Gradle版本之间不会发生破坏性的更改

也许您使用的是旧版本的
OneSignal
插件,该插件现在已与较新版本的Gradle断开。也许有一个新版本的插件可以工作


如果你不能找到插件作者并向项目提交一个bug,或者提交一个带有补丁的pull请求,那么我最终能够修复它。以下是我联系OneSignal支持后发现的修复程序

原因:来自一个信号的更改影响了它

修正: 1.我们实现OneSignal SDK的方式已经改变,并且没有通知用户。早些时候,以下是实施的第一步

plugins {
id 'com.onesignal.androidsdk.onesignal-gradle-plugin' version '0.7.0'
}

apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

repositories {
maven { url 'https://maven.google.com' }
}
现在,您需要将其更改为

buildscript {
repositories {
    maven { url 'https://plugins.gradle.org/m2/'}
}
dependencies {
    classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.12.2'
}
}

apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

repositories {
maven { url 'https://maven.google.com' }
}
进行上述操作将修复错误。然而,我也不得不将我的项目迁移到androidX。 所以 2.将项目迁移到androidX


以上两个步骤修复了错误。

尝试使用
--stacktrace运行gradle,以帮助查看错误发生的位置。它可能发生在您应用于您的应用程序的一个插件中project@lance-爪哇,是的。我已经尝试过了,但得到了以下异常:groovy.lang.GroovyRuntimeException:在groovy.lang.MetaClassImpl.invokeConstructor中找不到与以下内容匹配的构造函数:org.gradle.api.internal.artifacts.ivyservice.ivyresolve.VersionInfo(字符串),位于groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1749)(MetaClassImpl.java:1556)位于org.codehaus.groovy.runtime.callsite.MetaClassConstructorSite.callConstructor(MetaClassConstructorSite.java:48)位于org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:249)…您已截断stacktrace。最终,我们将在插件或您的构建中查找行号。gradle@lance-java,添加了更多堆栈跟踪。看起来这是由OneSignal库引起的。原因:groovy.lang.GroovyRuntimeException:找不到与以下内容匹配的构造函数:org.gradle.api.internal.artifacts.ivyservice.ivyresolve.VersionInfo(java.lang.String)位于com.onesignal.androidsdk.GradleProjectPlugin.compareVersions(GradleProjectPlugin.groovy:145)atHey@lance java,是的,我联系了团队寻求支持。看起来他们的sdk实现发生了变化,由于我使用的是旧的实现方式,它正在崩溃。我将使用修复更新答案。非常感谢。另一个选择是继续使用相同版本的
OneSignal
插件,但请更改你的gradle版本是兼容的。我猜这将意味着使用旧版本的gradle