Android Studio + Gradle + Android 注解

标签 android annotations gradle android-studio

<分区>

我正在尝试添加 AndroidAnnotations到具有 gradle 构建系统的 Android Studio 项目。有没有人这样做过?谁能帮我这个?我什至不知道从哪里开始。我知道如何将库添加到 gradle,但 AndroidAnnotations 需要 2 个 jar 文件,我不知道该怎么办。

最佳答案

After 4 months I am 4 months older and a little smarter :) If you want to use      
Annotations in Android use http://jakewharton.github.io/butterknife/. 
It is way better and it is easy to set up :)

这是你需要做的:

  • 您需要修改您的 build.gradle 文件(为您的应用程序模块构建文件)

首先添加 Dagger 和注释版本。您还可以在依赖项中声明它们。当您有很多依赖项时,这会更方便。

ext.daggerVersion = '1.0.0';
ext.androidAnnotationsVersion = '2.7.1';

configurations {
    apt
}

添加依赖:

dependencies {

apt "com.googlecode.androidannotations:androidannotations:${androidAnnotationsVersion}"
compile "com.googlecode.androidannotations:androidannotations-api:${androidAnnotationsVersion}"
apt "com.squareup.dagger:dagger-compiler:${daggerVersion}"
compile "com.squareup.dagger:dagger:${daggerVersion}"

}

最后,添加这个。这为编译器添加了路径并为生成的文件创建了一个目录(这个目录将被称为 apt_generated):

android.applicationVariants.each { variant ->
aptOutput = file("${project.buildDir}/source/apt_generated/${variant.dirName}")
println "****************************"
println "variant: ${variant.name}"
println "manifest:  ${variant.processResources.manifestFile}"
println "aptOutput:  ${aptOutput}"
println "****************************"

variant.javaCompile.doFirst {
    println "*** compile doFirst ${variant.name}"
    aptOutput.mkdirs()
    variant.javaCompile.options.compilerArgs += [
            '-processorpath', configurations.apt.getAsPath(),
            '-AandroidManifestFile=' + variant.processResources.manifestFile,
            '-s', aptOutput
    ]
}
}

哦,是的,在构建应用程序之后,您需要转到项目根目录/build/apt_generated,右键单击文件夹并设置“标记为源根目录”

关于Android Studio + Gradle + Android 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17910603/

相关文章:

android - 我的 robofragment 无法注入(inject) View (roboguice 2.0)

jenkins - 如何将构建 Artifactory 的快照版本上传到 Artifactory 中的 gradle 存储库

android - 在构建我的主要 Android 应用程序时,我的库带来了许多类

android - 是否有任何解决方案可以在模拟器 (Android) 中运行 Google Plus 发布(分享互动帖子)

java - ArrayList 已初始化,但在尝试 .add(string) 方法时仍返回 NullPointerException

java - fragment 到 fragment 的通信

swift - 如何按字母顺序对注释数组进行排序

java - 获取带有注释的所有类并将它们添加到android中的hashMap

java - Hibernate 多对多映射未保存在数据透视表中

cordova - Cordova 建立失败