【问题标题】:Unable to load class 'com.android.builder.Version' after upgrade to Android Studio 3.1升级到 Android Studio 3.1 后无法加载类“com.android.builder.Version”
【发布时间】:2018-04-08 21:02:12
【问题描述】:

我已在 Canary 频道中升级到 Android Studio 3.1,我无法再构建我的项目,打印此错误:

无法加载类“com.android.builder.Version”。可能的原因 对于这个意外错误包括:

  • Gradle 的依赖缓存可能已损坏(有时会在网络连接超时后发生。)重新下载依赖并同步 项目(需要网络)
  • Gradle 构建过程(守护程序)的状态可能已损坏。停止所有 Gradle 守护程序可能会解决此问题。停止 Gradle 构建 进程(需要重新启动)

您的项目可能正在使用不兼容的第三方插件 与项目中的其他插件或 Gradle 版本一起使用 项目要求的。在损坏的 Gradle 进程的情况下,您 也可以尝试关闭IDE,然后杀死所有Java进程。

我已经尝试了这两种解决方案,还尝试删除所有 ~/.gradle/caches 目录,但错误仍然存​​在。

寻找类似的错误,我发现旧版本的 Android Studio 存在此问题,建议的解决方案是升级 android 工具版本。

我想我已经有最后一个了:

    classpath 'com.android.tools.build:gradle:3.1.0-alpha01'

编辑(2017 年 10 月 30 日):

答案表明有人遇到问题,而有人没有。 正如 cmets 对这个问题所指出的,这可能是由不兼容的插件引起的,所以我在这里列出了我的项目中使用的插件:

buildscript {
    ext.kotlin_version = '1.1.51'
    repositories {
        jcenter()
        google()
//        maven {
//            url 'https://maven.google.com'
//        }
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "com.gradle:build-scan-plugin:1.10"
        classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.1'
        classpath 'com.android.tools.build:gradle:3.1.0-alpha01'
        classpath 'com.google.gms:google-services:3.1.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

由于某些与较新版本的 Android 插件不兼容,dexcount 的使用目前并不严格。

【问题讨论】:

  • 是的,您有最新的 android gradle 插件,但与其他插件不兼容。您能列出您项目的其他插件吗?
  • 这实际上可以解释我有问题而其他人没有问题...是的,我可以列出其他插件,我会编辑我的问题。
  • 它来自dexcount 插件,我们正在这里开发:github.com/KeepSafe/dexcount-gradle-plugin/pull/225

标签: android android-studio android-studio-3.1


【解决方案1】:

显然回到以前版本的 Android 工具插件可以工作:

    classpath 'com.android.tools.build:gradle:3.0.0'

但是 IDE 询问我是否要更新到 3.1.0-alpha1,所以我会徘徊这是一个错误还是问题出在其他地方。

我只是把这个解决方案留在这里,直到其他人想出另一种解释。

【讨论】:

  • 我也有同样的问题。我要回到 3.0.0 版。
【解决方案2】:

不知道为什么您的构建不起作用,但是在全新安装 Android Studio 3.1 并使用此设置后,编译一个包含多个库(并与 java、kotlin 混合)的大型项目一切正常。

buildscript {
    ext {
        gradle_version = "3.1.0-alpha01"
        kotlin_version = "1.1.51"
    }

    repositories {
        maven {
            url 'https://maven.google.com'
        }
        maven {
            url 'https://oss.sonatype.org/content/repositories/snapshots'
        }
        jcenter()
        google()
    }

    dependencies {
        classpath "com.android.tools.build:gradle:$gradle_version"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}



allprojects {
    repositories {
        maven {
            url 'https://maven.google.com'
        }
        jcenter()
        google()
    }

    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xmaxerrs" << "500"
        }
    }

}

还有我基于应用的 gradle。

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'

android {
... 
}

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,我们的共同点是 dexcount 插件。在两个插件兼容之前禁用此问题。见dexcount bug report

    “更新到 dexcount 0.8.2 解决了这个问题”

    【讨论】:

    • 你说得对,我忘了更新这个问题,我接受了你的回答并添加了我在 dexcount 上创建的错误的链接。
    • 固定在 dexcount 0.8.2
    • gradle-4.4 和 dexcount 0.8.2 的组合适用于我在 Android Studio 3.1.2 中
    【解决方案4】:

    我在 gradle 中更改了我的类路径行(项目:项目名称)并且问题消失了。

    类路径'com.android.tools.build:gradle:3.1.2'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-02
      • 2018-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多