我在玩android和android分析,为什么不玩groovy呢.也许更多:D
AndroidAnnotations,借助APT (AndroidAnnotations)生成助手类,可以在源代码中使用,并且在APT创建之前编译这个源代码.
Groovy是一种很好的语言,可以在Android上运行,在斯夫斯克尼夫的帮助下,可以创建一个快速的应用程序,还有一些例子。
两种可能的混合方式?我想不是,但我可以问一下:)
看看这个密码..。
build.gradle
buildscript {
repositories {
jcenter()
mavenLocal()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'com.github.dcendents:android-maven-plugin:1.2'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.6'
}
}
apply plugin: 'com.android.application'
apply plugin: 'groovyx.grooid.groovy-android'
...
dependencies {
...
compile 'com.github.batuypn:SmartConfigLibrary:v1.0.6'密码
...
import groovy.transform.CompileStatic
import batuypn.android.smartconfiglibrary.SmartConfigLibrary_
import batuypn.android.smartconfiglibrary.SmartConfigLibrary_.*
// @CompileStatic
class SmartConfigActivity extends Activity implements SmartConfigLibrary_.Callback {
private SmartConfigLibrary_ smartConfigLibrary;
...误差
SmartConfigActivity.groovy: 16:无法解析类SmartConfigLibrary_.Callback @第16行,列1.类SmartConfigActivity扩展活动实现SmartConfigLibrary_.Callback {^ 1个错误 编译失败
发布于 2015-07-10 06:16:40
从Gradle 2.5开始,您可以在Groovy源代码上使用“注释处理”。这在技术上不是Groovy处理,因为实际上Gradle强制Groovy编译器创建Java存根,然后处理存根。处理器将创建Java源代码,并在联合编译中使用Groovy进行编译。这意味着您只能在Groovy构造上使用注释,而Groovy构造在Java语言中是等价的。但基本上,这不应该是一个问题,因为处理器设计使用Java。此外,您只能使用此特性生成新类,而不能像lombok那样以一种非常讨厌的方式修改现有类。从用户的角度来看,这个Groovy处理应该是透明的,尽管它背后有技术。
我创建了一个示例项目,演示如下:https://github.com/WonderCsabo/androidannotations/tree/groovyExample/examples/gradle
编辑: android-apt插件现在支持Groovy处理,所以Gradle配置要简单得多。我更改了上面的示例,以利用android-apt。
您还可以添加Java源代码并对它们进行处理,生成的类将可用于Groovy。
发布于 2015-07-01 16:19:05
万一梅利斯误解了你..。
如果您使用Java代码上的注释来生成新的类,并且希望在Groovy中使用这些类,那么这是可能的。一个例子是使用Dagger2和Groovy代码,它们使用由带注释的Java代码生成的类。
发布于 2015-07-13 07:53:32
关于确切的问题:
改变这一点:
class SmartConfigActivity extends Activity implements SmartConfigLibrary_.Callback {
private SmartConfigLibrary_ smartConfigLibrary;对此:
class SmartConfigActivity extends Activity implements SmartConfigLibrary.Callback {
private SmartConfigLibrary smartConfigLibrary;这样你的项目就可以(几乎)建立起来了。为了完全解决这个问题,我建议从零开始构建基于我的例子的项目。
https://stackoverflow.com/questions/31160831
复制相似问题