groovy - 梯度错误 "Execution failed for task ' :app:compileDebugJava' "while build groovy in android studio

标签 groovy build gradle android-studio

我在 android studio 中构建 groovy 代码时出错。 错误信息是

C:\Users\Administrator\Desktop\lytest110\app\src\main\java\gzzhe\com\lytest110\MainActivity.java:41: error: can't find symbol
        Log.d("lytest110", GroovyTest.getMsg());
                           ^
  symbol:   parameter GroovyTest
  possition: class MainActivity
1 error

 FAILED
:app:compileDebugGroovy

FAILURE: Build failed with an exception.

我的 build.gradle 是:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.13.2'
        classpath 'me.champeau.gradle:gradle-groovy-android-plugin:0.3.4'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

app目录下的build.gradle:

    apply plugin: 'com.android.application'
apply plugin: 'me.champeau.gradle.groovy-android'
android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        applicationId "gzzhe.com.lytest110"
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile files('libs/groovy-2.4.0-beta-3-grooid.jar')
    compile files('libs/android-support-v4.jar')
    compile fileTree(include: ['*.jar'], dir: 'libs')
    //    compile 'com.android.support:support-v4:19.+'
}
  1. 我已将 groovy 文件放入 main/groovy/package/name 目录。
  2. groovy 用@CompileStatic 注释。

这个问题困扰了我几天。

最佳答案

从您的错误来看,您似乎是在用 Java 调用 Groovy 类。根据 Android Groovy 插件自述文件。它说

Groovy 源代码必须在 src/main/groovy 中找到。请注意,该插件遵循 Gradle 中 Groovy 插件的行为,这意味着如果您希望能够让 Groovy 类引用 Java 类,而这些 Java 类本身又引用 Groovy 类,那么这些 Java 类也必须在 src/main/groovy 中找到(这叫联合编译)。

因此,您只需将 MainActivity.java 放入您的 ../main/groovy/package/name 目录

关于groovy - 梯度错误 "Execution failed for task ' :app:compileDebugJava' "while build groovy in android studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26739695/

相关文章:

java - Jenkins 如何在 Mac 内部设置 JAVA_HOME?

android - Gradle编译错误 "No Signature of Method"

java - 如何使用环境变量值访问java中的cloudinary API?

variables - 如何在 Gradle 脚本中从 Bamboo 访问变量?

java - 如何确定在脚本引擎中运行的 Groovy 代码中是否存在变量?

dictionary - Groovy 有合并 2 个 map 的方法吗?

groovy - 获取 Jenkins 上游工作

java - 多模块项目中的 Gradle 构建错误 : java. lang.NoClassDefFoundError : at groovyjarjarasm. asm.signature.SignatureReader.parseType

build - docker构建发布插件出错

javascript - 我可以从资源文件夹重建 Electron 吗