Java 使用Maven和Dagger生成的类对Eclipse中的ADT不可见
我已经建立了一个项目,将Dagger添加到类路径中,并在pom.xml中添加了所有这些M2E连接器等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>
<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可以查看这些文件
更新:我已经完成了上面“可能重复”问题的所有步骤,但我的问题没有解决。我将再次声明:文件是在构建过程中创建的,它们只是由于某种原因对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>
...