首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android + Groovy + Android注释

Android + Groovy + Android注释
EN

Stack Overflow用户
提问于 2015-07-01 12:06:03
回答 4查看 501关注 0票数 1

我在玩android和android分析,为什么不玩groovy呢.也许更多:D

AndroidAnnotations,借助APT (AndroidAnnotations)生成助手类,可以在源代码中使用,并且在APT创建之前编译这个源代码.

Groovy是一种很好的语言,可以在Android上运行,在斯夫斯克尼夫的帮助下,可以创建一个快速的应用程序,还有一些例子。

两种可能的混合方式?我想不是,但我可以问一下:)

看看这个密码..。

build.gradle

代码语言:javascript
复制
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'

密码

代码语言:javascript
复制
...
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个错误 编译失败

EN

回答 4

Stack Overflow用户

发布于 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。

票数 2
EN

Stack Overflow用户

发布于 2015-07-01 16:19:05

万一梅利斯误解了你..。

如果您使用Java代码上的注释来生成新的类,并且希望在Groovy中使用这些类,那么这是可能的。一个例子是使用Dagger2和Groovy代码,它们使用由带注释的Java代码生成的类。

票数 0
EN

Stack Overflow用户

发布于 2015-07-13 07:53:32

关于确切的问题:

改变这一点:

代码语言:javascript
复制
class SmartConfigActivity extends Activity implements SmartConfigLibrary_.Callback {
    private SmartConfigLibrary_ smartConfigLibrary;

对此:

代码语言:javascript
复制
class SmartConfigActivity extends Activity implements SmartConfigLibrary.Callback {
    private SmartConfigLibrary smartConfigLibrary;

这样你的项目就可以(几乎)建立起来了。为了完全解决这个问题,我建议从零开始构建基于我的例子的项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31160831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档