【问题标题】:Android Studio won't compile org/codehaus/groovy/runtime/StringGroovyMethodsAndroid Studio 不会编译 org/codehaus/groovy/runtime/StringGroovyMethods
【发布时间】:2015-09-28 16:20:15
【问题描述】:

Android Studio gradle 收到一个 groovy 错误,如下所示:

错误:(36, 0) 原因:org/codehaus/groovy/runtime/StringGroovyMethods 打开文件

对于最新版本的 Android Studio Canary 版本,无法解决此问题。我已经添加了

classpath 'org.codehaus.groovy:groovy-backports-compat23:2.3.5'

到项目:build.gradle 和我仍然有一个问题,似乎有些东西有兼容性问题,但不确定是什么。

这是我的一些版本信息:

AI-141.2071668(最新金丝雀版本)

插件

Android 支持版本:10.1.3 RC 1

Groovy 版本:9.0

Java:

jdk1.7.0_79 和 jdk1.7.0_17(都试过了)

这是我的 gradle 文件:

项目:build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

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

    classpath 'org.codehaus.groovy:groovy-backports-compat23:2.3.5'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

所有项目{ 存储库{ 中心() } }

我的 gradle-wrapper.properties 文件:

#Wed Apr 10 15:27:10 PDT 2013

distributionBase=GRADLE_USER_HOME 分布路径=包装/分布 zipStoreBase=GRADLE_USER_HOME zipStorePath=包装器/dists distributionUrl=https://services.gradle.org/distributions/gradle-2.2.1-all.zip

我的应用build.gradle文件:

buildscript {
repositories {
    mavenCentral()

}
dependencies {

}

}

应用插件:'com.android.application'

机器人{ compileSdkVersion 21 buildToolsVersion "22.0.1"

defaultConfig {
    applicationId 'com.me.app'
    minSdkVersion 16
    targetSdkVersion 21
    versionCode 1101
    versionName "1.1.01"
    multiDexEnabled = true
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

}
packagingOptions {
    exclude 'META-INF/ASL2.0'
    exclude 'META-INF/DEPENDENCIES.txt'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/dependencies.txt'
    exclude 'META-INF/LGPL2.1'
}
productFlavors {
    developercode {
        minSdkVersion 16
        applicationId 'com.me.app'

        targetSdkVersion 21
        versionCode 1101
        versionName '1.1.01'
    }
    eridesharecode {
        minSdkVersion 16
        applicationId 'com.me.app'
        targetSdkVersion 21
        versionCode 1101
        versionName '1.1.01'
    }
}
dexOptions { javaMaxHeapSize "2g" }
compileOptions {
    encoding "UTF-8"
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':library')
compile 'com.android.support:support-v4:21.0.0'
compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:recyclerview-v7:21.0.0'
compile 'com.android.support:cardview-v7:21.0.0'
compile 'com.squareup.okio:okio:1.1.0'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile 'de.keyboardsurfer.android.widget:crouton:1.+@aar'
compile 'com.joanzapata.android:android-iconify:1.0.6'
compile 'com.tundem.aboutlibraries:library:4.0.1@aar'
compile 'com.squareup.retrofit:retrofit:1.7.1'
provided 'com.squareup.dagger:dagger:1.2.+'
compile 'com.google.android.gms:play-services:+'
compile 'cn.pedant.sweetalert:library:1.3'
compile 'de.greenrobot:eventbus:2.1.0'
compile files('libs/nineoldandroids-2.4.0.jar')
provided 'com.squareup.dagger:dagger-compiler:1.2.+'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.joanzapata.mapper:simple-mapper:1.0.10'
compile 'com.facebook.android:facebook-android-sdk:4.0.0'
compile 'com.google.maps.android:android-maps-utils:0.3+'
compile 'javax.mail:mail:1.4.7'

}

我还清理了我的 .gradle 文件夹、*.iml、构建文件夹......再次没有解决。

我已经能够将 Android Studio 降级到版本 141.1903250 并且它可以工作,但我喜欢利用最新的 Android Studio 版本,因为它们不会破坏任何东西。

【问题讨论】:

  • Groovy 版本:9.0 没有意义,没有这样的东西
  • 你在做什么,具体的错误是什么?
  • Groovy 9.0 版是插件,会调整。我正在尝试进行 gradle 同步并收到以下错误:错误:(36, 0) 原因:org/codehaus/groovy/runtime/StringGroovyMethods 打开文件
  • compat23 应该不是必需的。愚蠢的问题:你有 Groovy 的 grooid 版本作为依赖项,对吗?我在你的 build.gradle 中没有看到。
  • Android Groovy Gradle 插件在哪里?你研究过这个吗?

标签: android android-studio groovy android-gradle-plugin


【解决方案1】:

我做了两件事来解决这个问题。将 groovy 编译添加到 build.gradle 文件并使用旧版本的 gradle。

我将 Project build.gradle 文件更改为以下内容:

buildscript {
repositories {
    jcenter()
    maven {
        url "https://plugins.gradle.org/m2/"
    }
}


dependencies {
    classpath 'com.android.tools.build:gradle:2.2.1'


    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    jcenter()
}
}

我修改了模块build.gradle文件如下:

buildscript {
repositories {
    mavenCentral()

    maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
//        classpath 'com.android.tools.build:gradle:0.10.+'
//        classpath 'com.uphyca.gradle:gradle-android-aspectj-plugin:0.9.8'
//        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'

}
}

【讨论】:

  • 您从哪里获得 tools.build.gradle 的 2.2.1?我在 IDE 中看到的最新版本是 1.5.0,与 mvnrepo 匹配。
猜你喜欢
  • 2012-02-14
  • 1970-01-01
  • 1970-01-01
  • 2014-07-23
  • 2015-06-18
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
  • 1970-01-01
相关资源
最近更新 更多