Android中的Groovy - 如何运行Hello world

时间:2015-06-19 13:01:11

标签: android groovy

我在引用我创建的groovy类时遇到了麻烦。以下是步骤:

我的build.gradle文件具有所有必需的依赖项:

apply plugin: 'com.android.application'

申请插件:'groovyx.grooid.groovy-android'

android {     compileSdkVersion 22     buildToolsVersion“21.1.2”

packagingOptions {
    // workaround for http://stackoverflow.com/questions/20673625/android-gradle-plugin-0-7-0-duplicate-files-during-packaging-of-apk
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/groovy-release-info.properties'
}

defaultConfig {
    applicationId "com.example.uen.myrxjavaandroidproject"
    minSdkVersion 17
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.netflix.rxjava:rxjava-android:0.20.7'
    compile 'com.squareup:otto:1.3.5'
    compile 'org.codehaus.groovy:groovy:2.4.3:grooid'
}

gradle成功同步。

然后我在main下创建了一个名为'groovy'的文件夹,这样我的项目结构如下所示:

enter image description here

注意我有一个名为“Hello”的groovy类,它看起来像这样:

public class Hello {
String name;

public void sayHello() {
    System.out.println("Hello "+getName()+"!");
}

public void setName(String name) {
    this.name = name;
}

public String getName() {
    return name;
}

}

现在在我的MainActivity.java类中,我尝试实例化Hello类但它没有被识别。我这样做:

Hello myHello = new Hello();

我做错了什么?

1 个答案:

答案 0 :(得分:3)

如果要使用Java源代码中的Groovy类,则必须在" groovy"中找到您的Java文件。目录。它采用这种方式来强制执行联合编译(Java类使用Groovy类或其他方式)。

独立于此,为了Grooviness,您的Hello Groovy类可以简化为:

class Hello {
   String name
   void sayHello() {
       println "Hello $name!"
   }
}