更新到 3.0 后 Gradle 构建失败

新手上路,请多包涵

我最近将我的项目的 gradle 版本从 2.14.1 更新到了 3.0。从那时起,gradle 构建每次都失败并出现此错误:

错误:原因:org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection 无法转换为 org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection 此意外错误的可能原因包括:

  • Gradle 的依赖缓存可能已损坏(有时会在网络连接超时后发生。)重新下载依赖并同步项目(需要网络)
  • Gradle 构建过程(守护进程)的状态可能已损坏。停止所有 Gradle 守护程序可能会解决此问题。停止 Gradle 构建过程(需要重新启动)
  • 您的项目可能正在使用与项目中的其他插件或项目请求的 Gradle 版本不兼容的第三方插件。

在 Gradle 进程损坏的情况下,您还可以尝试关闭 IDE,然后杀死所有 Java 进程。

我搜索了谷歌并找到了一些类似 解决方案,但没有任何效果。有谁知道如何修理它?

原文由 Drilon Blakqori 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 720
2 个回答

将您的 gradle 构建工具升级到最新版本。

一种简单的方法是在您的 build.gradle 文件中添加最新版本的构建工具作为依赖项,例如:

 dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0-beta1'
}

然后你可以运行 gradle tasks 并且 gradle 会下载你需要的一切。

在 2016 年 9 月 19 日发布 Android Studio 2.2 稳定版之后,最新版本的构建工具是 2.2.0 。所以你可以通过以下方式修复它:

 dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
}

由于 Android Studio 2.4 稳定版尚未准备好发布(2017 年 5 月 4 日),构建工具的最新稳定版是 2.3.1 。

 dependencies {
    classpath 'com.android.tools.build:gradle:2.3.1'
}

如果您将此构建工具版本更新为 2.3.* ,您还应该在 /yourProjectRoot/gradle/wrapper/gradle-wrapper.properties 文件中将 gradle 包装器版本更新为 3.3。 (我知道它不匹配问题 Gradle build failing after update to 3.0 ,但我强烈建议您使用谷歌推荐的最新构建工具)

顺便说一句:构建工具的版本 2.3.1 仅存在于 jCenter 上,而不存在于 MavenCentral 上,因此如果在终端中运行 gradlew 命令行时遇到以下错误

Could not find com.android.tools.build:gradle:2.3.1.
 Searched in the following locations:
     https://repo1.maven.org/maven2/com/android/tools/build/gradle/2.3.1/gradle-2.3.1.pom
     https://repo1.maven.org/maven2/com/android/tools/build/gradle/2.3.1/gradle-2.3.1.jar

只需将 mavenCentral() 替换为 jcenter() 即可

 repositories {
    jcenter()
    //mavenCentral()
}

原文由 ending0421 发布,翻译遵循 CC BY-SA 3.0 许可协议

Android Gradle 依赖项在 Android Studio 的新更新中不起作用

如果您遇到很多问题,最重要的是:它适用于插件 7.1 或新的更新版本请试试这个:

转到 -> settings.gradle 存储库 { } 内:

添加两个文件:

 maven{ url("https://repo.gradle.org/gradle/libs-releases/") }
maven { url "https://jitpack.io" }

完整的结构在

设置.gradle

文件如下:

 pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven{ url("https://repo.gradle.org/gradle/libs-releases/") }
        maven { url "https://jitpack.io" }
    }
}
rootProject.name = "MyApp"
include ':app'

最后一步,必须将其添加到 gradle.properties 文件中。

 android.useAndroidX=true
android.enableJetifier=true

原文由 Sumit Saxena 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题