19

所以我想尝试新的 Android Studio 并导入我的 eclipse 项目(我生成了一个 gradle 构建文件)。工作得很好。

唯一似乎不起作用的库是 AndroidAnnotations。我在 File > Settings > Compiler > Annotation Processing 下选择了 androidannotations-2.7.jar 文件。

作为生产源目录,我选择了“gen”。但是没有生成像 MainActivity_ 这样的生成文件。我做错了什么?

4

6 回答 6

11

我遇到了同样的问题,按照使用 intelliJ 配置 aa 的说明进行操作,现在它就像一个魅力一样工作。

AA intelliJ 配置页面会将您指向这篇文章...

http://www.ashokgelal.com/2012/12/setting-up-intellij-idea-12-with-maven-actionbarsherlock-roboelectric-androidannotations/

...上面的帖子将引导您在 intelliJ 中设置各种库,滚动到底部以获取 AA。

我必须做的我不必在 Eclipse 中做的主要事情是转到 Preferences > Compiler > Annotation Processors 并将我的处理器路径设置为...

[AA 罐子路径]/androidannotations-2.7.jar:[AA 罐子路径]/androidannotations-api-2.7.jar:[AA 罐子路径]/codemodel-2.4.1.jar

于 2013-05-18T14:43:39.813 回答
5

这对我有用:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android'

configurations {
    apt
}

repositories {
    mavenRepo url: 'https://oss.sonatype.org/content/repositories/snapshots/'
}

ext.androidAnnotationsVersion = '3.0-SNAPSHOT';

dependencies {
    compile 'com.android.support:support-v4:18.0.+'

    apt "org.androidannotations:androidannotations:$ext.androidAnnotationsVersion"
    compile "org.androidannotations:androidannotations-api:$ext.androidAnnotationsVersion"
}

android {
    compileSdkVersion 18
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 18
    }
}

android.applicationVariants.all { variant ->
    ext.aptOutput = file("${project.buildDir}/source/apt_generated/${variant.dirName}")
    ext.aptOutput.mkdirs()

    variant.javaCompile.options.compilerArgs += [
            '-processorpath', configurations.apt.asPath,
            '-AandroidManifestFile=' + variant.processResources.manifestFile,
            '-s', ext.aptOutput
    ]
}

之后,我需要build/sources/apt-generated/debug在 Android Studio 中标记为源,方法是右键单击它并选择Mark Directory as>Source Root

于 2013-09-08T18:50:58.417 回答
2

如果您在编译时没有遇到问题,并且刚刚在 IDE 中看到生成的类,那么您需要检查target/generated-sources/annotations是否被选中为Source Folder

那将是 File > Project Structure > Modules > Sources 选项卡,然后查找文件夹并将其标记为Sources。该文件夹将变为蓝色并列在“源文件夹”列表中。

于 2013-05-17T06:58:59.930 回答
0

似乎有一种方法可以让 Android Studio 与 AndroidAnnotations 一起工作

http://code.google.com/p/android/issues/detail?id=55764

于 2013-05-25T15:50:32.797 回答
0

如果您尝试将 Android Studio 与运行 Android Annotations 的项目一起使用,您可能会遇到一个神秘的编译器问题:

为注释元素找到错误类型的数据 public abstract int com.googlecode.androidannotations.annotations.EActivity.value() (找到 int 类型的数据)

问题是找不到 R 类。默认情况下,Android Studio 不会像 eclipse 那样将 R.java 放入 gen 目录。解决方案是进入 Project Settings -> Facets -> 为您的项目选择 Android facet -> Compiler 选项卡,然后将“R.java 和 Manifest.java 文件”从“Run process-resources Maven task before Make”更改为“由 IDE 生成”。

于 2013-07-16T13:27:00.207 回答
0

由于 Android Studio 基于 IntelliJ,您是否尝试遵循AndroidAnnotation wiki 上的配置指南?

如果你使用 gradle,你应该查看这个页面,它解释了如何配置 AndroidAnnotation 的插件:

buildscript {
    repositories {
        mavenCentral()
    }

    def gradleAndroidAnnotationsPluginVersion = '0.3.0'

    dependencies {
        classpath "net.ealden.gradle.plugins:gradle-androidannotations-plugin:$gradleAndroidAnnotationsPluginVersion"
    }
}

apply plugin: 'androidannotations'
apply plugin: 'idea'

androidAnnotationsVersion = '2.2'

我还没有尝试过这个新的 IDE。我会尽快检查的。

于 2013-05-16T07:48:51.833 回答