Groovy 在 Android - 如何 运行 你好世界
Groovy in Android - how to run Hello world
我在引用我创建的 groovy class 时遇到问题。以下是步骤:
我的 build.gradle 文件具有所有必需的依赖项:
apply plugin: 'com.android.application'
应用插件:'groovyx.grooid.groovy-android'
android{
编译SDK版本22
buildToolsVersion "21.1.2"
packagingOptions {
// workaround for
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' 的文件夹,这样我的项目结构如下所示:
注意我有一个名为 "Hello" 的 groovy class,它看起来像这样:
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 class 中,我尝试实例化 Hello class 但它没有被识别。我这样做:
Hello myHello = new Hello();
我做错了什么?
如果您想使用来自 Java 来源的 Groovy class,那么您的 Java 文件 必须 在 "groovy" 目录中找到。这样做是为了强制联合编译(Java classes 消耗 Groovy classes 或其他方式)。
独立于此,为了 Groviness,您的 Hello
Groovy class 可以减少为:
class Hello {
String name
void sayHello() {
println "Hello $name!"
}
}
我在引用我创建的 groovy class 时遇到问题。以下是步骤:
我的 build.gradle 文件具有所有必需的依赖项:
apply plugin: 'com.android.application'
应用插件:'groovyx.grooid.groovy-android'
android{ 编译SDK版本22 buildToolsVersion "21.1.2"
packagingOptions {
// workaround for
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' 的文件夹,这样我的项目结构如下所示:
注意我有一个名为 "Hello" 的 groovy class,它看起来像这样:
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 class 中,我尝试实例化 Hello class 但它没有被识别。我这样做:
Hello myHello = new Hello();
我做错了什么?
如果您想使用来自 Java 来源的 Groovy class,那么您的 Java 文件 必须 在 "groovy" 目录中找到。这样做是为了强制联合编译(Java classes 消耗 Groovy classes 或其他方式)。
独立于此,为了 Groviness,您的 Hello
Groovy class 可以减少为:
class Hello {
String name
void sayHello() {
println "Hello $name!"
}
}