我删除了用户.gradle文件夹中的文件,并尝试不同版本的gradle,但不知道该如何解决这个问题。无法加载类'org.codehaus.groovy.runtime.typehandling.ShortTypeHandling'。
我删除了用户.gradle文件夹中的文件,并尝试不同版本的gradle,但不知道该如何解决这个问题。无法加载类'org.codehaus.groovy.runtime.typehandling.ShortTypeHandling'。
这个页面可能会帮助解决问题。他们的说法是:
So we leveraged this version to add a new artifact, named groovy-backports-compat23. This artifact shouldn’t be necessary for most of you, but if you face an error like:
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.typehandling.ShortTypeHandling at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
in your project, then it means that a class has been compiled with Groovy 2.3+ but that you are trying to use it with an older version of Groovy. By adding this jar on classpath, you give a chance to your program to run. This may be particularily interesting for Gradle users that want to use a plugin built on Gradle 2+ on older versions of Gradle and face this error. Adding the following line to their build files should help:
buildscript { // ... dependencies { classpath 'some plugin build on gradle 2' classpath 'org.codehaus.groovy:groovy-backports-compat23:2.3.5' } }
Note that for now, this jar only contains the ShortTypeHandlingClass. Future versions may include more. - See more at: http://glaforge.appspot.com/article/groovy-2-3-5-out-with-upward-compatibility#sthash.mv7Y8XQv.dpuf
我可以使用以下三种方法来修复这个错误信息。
build.gradle (项目:xxxxx)
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
allprojects {
repositories {
mavenCentral()
}
}
build.gradle (模块: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'])
}
我曾经有同样的问题。我在命令行上运行gradle,这个方法是可行的。
然后,在文件->设置->构建、执行、部署->构建工具->Gradle中,"使用本地gradle分发"被激活。将其更改为"使用默认的gradle wrapper(推荐)",就可以解决问题了。
我曾经遇到过同样的问题,但是我找到了解决办法。
原因
这个问题是由于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之间的版本兼容性信息。