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

时间:2015-03-31 00:57:06

标签: android groovy android-studio gradle resolve

我安装了Android Studio,当我尝试从gradle导入项目时,显示解决错误

  

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

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

4 个答案:

答案 0 :(得分:6)

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

  

因此我们利用此版本添加一个名为的新工件   Groovy的反向移植,compat23。这个工件不应该是必需的   大多数人,但如果你遇到如下错误:

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

在你的项目中,那意味着已经编译了一个类   Groovy 2.3+,但你试图使用旧版本的   Groovy的。通过在类路径中添加此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

答案 1 :(得分:4)

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

  1. 使用最新的gradle版本
  2. 使用最新的Android SDK和工具。
  3. 使用proguard-rules.pro
  4. 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'])
    }
    

答案 2 :(得分:4)

我遇到了同样的问题。我从命令行运行gradle,这确实有效。 之后,我找到了文件 - >设置 - >构建,执行,部署 - >构建工具 - >摇篮。 “使用本地gradle分发”处于活动状态。将其更改为“使用默认gradle包装器(推荐)”并且它有效。

答案 3 :(得分:0)

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

原因

此问题是由android gradle插件与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