我在 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.+'
}
- 我已将 groovy 文件放入 main/groovy/package/name 目录。
- 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/