【问题标题】:Android Studio 1.0.2 Kickflip.io ShortTypeHandling ErrorAndroid Studio 1.0.2 Kickflip.io ShortTypeHandling 错误
【发布时间】:2015-01-05 23:05:42
【问题描述】:

我正在尝试测试 kickflip.io github repo (https://github.com/Kickflip/kickflip-android-example) 的 android 示例,但是一旦我导入了示例,我就会收到以下错误:Cause: org/codehaus/groovy/runtime/typehandling/ShortTypeHandling

使用 Android Studio 1.0.2 和 Gradle 2.2.1

您将在下面看到我的 gradle 文件。

settings.gradle:

include ':app'

gradle 包装器:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.10-bin.zip

'

build.gradle:

buildscript {
repositories {
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.1'
    classpath 'org.codehaus.groovy:groovy-backports-compat23:2.3.5'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

app/build.gradle:

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.1"

defaultConfig {
    minSdkVersion 18
    targetSdkVersion 19
    versionCode 2
    versionName "1.1"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
    }
}

dependencies {
    compile 'com.android.support:support-v4:19.1.0'
    compile 'com.squareup.picasso:picasso:2.2.0'
    compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'
    compile 'io.kickflip:sdk:1.1.1'
}

Cause: org/codehaus/groovy/runtime/typehandling/ShortTypeHandling有关的错误日志:

Caused by: java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/typehandling/ShortTypeHandling
at com.android.build.gradle.BasePlugin.getLocalVersion(BasePlugin.groovy:3612)
at com.android.build.gradle.BasePlugin.<init>(BasePlugin.groovy:258)
at com.android.build.gradle.AppPlugin.<init>(AppPlugin.groovy:34)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.gradle.api.internal.DependencyInjectingInstantiator.newInstance(DependencyInjectingInstantiator.java:62)
at org.gradle.api.internal.plugins.DefaultPluginRegistry.loadPlugin(DefaultPluginRegistry.java:67)
... 73 more'

【问题讨论】:

  • 实际的异常堆栈跟踪可能会有所帮助
  • @tim_yates 我更新了堆栈跟踪。任何帮助表示赞赏。

标签: java android groovy gradle


【解决方案1】:

换行

distributionUrl=http\://services.gradle.org/distributions/gradle-1.10-bin.zip

从你的 gradle-wrapper.properties 文件到

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

这对我有帮助

【讨论】:

  • 只是添加一些上下文,要更改的行在gradle-wrapper.properties(例如MyProject/gradle/wrapper/)
【解决方案2】:

您使用了错误的 gradle 版本。如果您的 IDE 实际上从包装器(1.10)中获取了 gradle 版本,那么上面提到的类就不会出现在 groovy 版本中。该类是在 Groovy 2.3 中引入的。

使用与 android 插件版本相同的 gradle 版本,即 2.2.1(或至少到 2.1.X IIRC,这是第一个使用 Groovy 2.3 的版本)。也许您只需要在 IntelliJ 中更改为固定版本,而不是选择“自定义包装器”标志。

【讨论】:

    【解决方案3】:

    这个项目的原始build.gradle 文件说:

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

    尝试将值更改为 1.0,因为许多项目支持 1.0 稳定版本的 gradle。祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多