【问题标题】:Android Studio Unable to load class 'org.codehaus.groovy.runtime.typehandling.ShortTypeHandling'Android Studio 无法加载类“org.codehaus.groovy.runtime.typehandling.ShortTypeHandling”
【发布时间】:2015-06-04 05:06:55
【问题描述】:

我安装了 Android Studio,当我尝试从 gradle 导入项目时,会出现此 解决错误

无法加载类 'org.codehaus.groovy.runtime.typehandling.ShortTypeHandling'。

我删除了我的 Users .gradle 文件夹中的文件并尝试了不同的 gradle 版本。我不知道如何解决这个问题。

【问题讨论】:

标签: android groovy android-studio gradle resolve


【解决方案1】:

This 页面可能有助于解决问题。他们说的是:

所以我们利用这个版本添加了一个新的工件,名为 groovy-backports-compat23。这个工件不应该是必要的 大多数人,但如果你遇到如下错误:

Caused by: java.lang.ClassNotFoundException:
org.codehaus.groovy.runtime.typehandling.ShortTypeHandling    at
java.net.URLClassLoader$1.run(URLClassLoader.java:372)

在您的项目中,则表示已编译了一个类 Groovy 2.3+,但您正在尝试将它与旧版本的 时髦的。通过在类路径上添加这个 jar,你给你一个机会 要运行的程序。这对于 Gradle 用户来说可能特别有趣 想要在旧版本的 Gradle 2+ 上使用构建的插件 Gradle 并面对这个错误。将以下行添加到他们的构建中 文件应该有帮助:

buildscript {
    // ...
    dependencies {
         classpath 'some plugin build on gradle 2'
         classpath 'org.codehaus.groovy:groovy-backports-compat23:2.3.5'
    } }

请注意,目前,此 jar 仅包含 ShortTypeHandlingClass。 未来的版本可能包括更多。 - 查看更多信息:http://glaforge.appspot.com/article/groovy-2-3-5-out-with-upward-compatibility#sthash.mv7Y8XQv.dpuf

【讨论】:

    【解决方案2】:

    我可以使用这三种方法修复此错误消息。

    1. 使用最新的 gradle 版本
    2. 使用最新的 android SDK 和工具。
    3. 使用 proguard-rules.pro

    build.gradle(项目:xxxxx)

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
             classpath 'com.android.tools.build:gradle:1.2.3'
        }
    }
    
    allprojects {
        repositories {
            mavenCentral()
        }
    }
    

    build.gradle (Module:app)

    apply plugin: 'android'
    
    android {
        compileSdkVersion 22
        buildToolsVersion "21.1.2"
    
        defaultConfig {
            minSdkVersion 11
            targetSdkVersion 19
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        compile 'com.android.support:appcompat-v7:+'
        compile fileTree(dir: 'libs', include: ['*.jar'])
    }
    

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。我从命令行运行 gradle 并且确实有效。 之后,我找到了 File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle。那里“使用本地 gradle 分发”处于活动状态。将其更改为“使用默认的 gradle 包装器(推荐)”并且它起作用了。

      【讨论】:

      • 非常感谢!我升级到 Studio 1.3.1 并在水中死了几个小时,直到我找到你的答案!!!!!!!
      • 你救了我的命!从1.4.1升级到Studio 1.5.1后,遇到了这个问题。这个答案有效。
      【解决方案4】:

      我也遇到了同样的问题。我已经找到了解决方案。

      原因

      这个问题是android gradle plugin不匹配gradle版本造成的。

      解决方案

      在项目中编辑 build.gradle。 gradle 插件版本必须满足 android studio 的要求。

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

      并编辑 gradle/wrapper/gradle-wrapper.properties 中的 distrubutionUrl。 gradle 的版本必须满足 gradle 插件的要求。

      distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip
      

      您可以在此页面中找到 android studio、android gradle 插件和 gradle 之间的版本兼容性

      https://stackoverflow.com/a/29695756/3675925

      【讨论】:

        猜你喜欢
        • 2015-05-09
        • 2021-07-12
        • 1970-01-01
        • 1970-01-01
        • 2022-11-30
        • 1970-01-01
        • 1970-01-01
        • 2018-06-14
        • 1970-01-01
        相关资源
        最近更新 更多