Java 使用Maven和Dagger生成的类对Eclipse中的ADT不可见

Java 使用Maven和Dagger生成的类对Eclipse中的ADT不可见,java,android,eclipse,maven,dagger,Java,Android,Eclipse,Maven,Dagger,我已经建立了一个项目,将Dagger添加到类路径中,并在pom.xml中添加了所有这些M2E连接器等 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <dependencies>

我已经建立了一个项目,将Dagger添加到类路径中,并在pom.xml中添加了所有这些M2E连接器等

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <dependencies>
                <dependency>
                    <groupId>com.squareup.dagger</groupId>
                    <artifactId>dagger</artifactId>
                    <version>1.2.1</version>
                </dependency>
                <dependency>
                    <groupId>com.squareup.dagger</groupId>
                    <artifactId>dagger-compiler</artifactId>
                    <version>1.2.1</version>
                    <optional>true</optional>
                </dependency>
                <dependency>
                    <groupId>com.jakewharton</groupId>
                    <artifactId>butterknife</artifactId>
                    <version>5.1.0</version>
                </dependency>
            </dependencies>
        </plugin>
此文件夹也作为源文件夹附加到项目中

到目前为止还不错,当我在模拟器上通过ADT运行应用程序时,我看到一个异常

06-21 09:51:17.983: E/AndroidRuntime(1207):
java.lang.RuntimeException: Unable to create application XXX:
java.lang.IllegalStateException: Module adapter for class XXX could not be loaded.
Please ensure that code generation was run for this module.
据我所知,这意味着当ADT试图编译项目时,“target/generated sources/annotations”文件夹对于ADT不可见

目前我有两个想法:

  • 将此文件夹添加到ADT的类路径
  • 生成标准Android文件夹中的文件,以便ADT可以查看这些文件
不幸的是,我还没有找到这两种方法。Dagger文档在这个主题上也有点过于简短和晦涩

那么,当您使用Maven和Dagger时,它在Eclipse中通常是如何工作的呢


更新:我已经完成了上面“可能重复”问题的所有步骤,但我的问题没有解决。我将再次声明:文件是在构建过程中创建的,它们只是由于某种原因对emulator不可见。

如果有人遇到同样的问题,下面是我如何解决的。我在pom.xml中添加了以下几行:

<build>
    <outputDirectory>bin/classes</outputDirectory>
...

垃圾箱/类别
...

这意味着在构建过程中,所有常用的东西都会像往常一样转到“目标”文件夹,但是所有源文件夹中的所有类都会转到“bin/classes”。必须设置此,ADT才能正常工作。我不知道ADT是否可以与其他文件夹一起工作,但默认情况下它不能。现在您可以右键单击project并选择“Maven/Update project…”将所有输出文件夹设置为“bin/classes”。这就解决了问题,ADT使用所有必需的类在模拟器上正确运行应用程序。

我认为这不是重复的,因为在另一个问题中,提问者缺少JavaWriter库。我肯定在类路径中有它,因为文件是成功生成的。如果我没有它,那么这些文件就根本不会生成。
<build>
    <outputDirectory>bin/classes</outputDirectory>
...