gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 08:50:04 24 4
gpt4 key购买 nike

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

        <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>

所有内容也都添加到 Eclipse 项目设置中,因此当我在我的 Dagger 模块中更改某些内容时,它会自动反射(reflect)在下面生成的 Java 文件中

target/generated-sources/annotations

此文件夹也作为源文件夹附加到项目。

到目前为止一切顺利,当我在模拟器上通过 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.

据我所知,这意味着文件夹“target/generated-sources/annotations”在 ADT 尝试编译项目时不可见。

目前我有两个想法:

  • 将此文件夹添加到 ADT 的类路径中
  • 将文件生成到标准 Android 文件夹,以便 ADT 可以看到它们

不幸的是,我还没有找到如何做这些中的任何一个。 Dagger 文档在这个主题上也有点过于简短和晦涩。

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

更新:我已经完成了上述“可能重复”问题的所有步骤,但我的问题没有得到解决。我再说一遍:文件是在构建过程中创建的,只是出于某种原因它们对模拟器不可见。

最佳答案

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

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

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

关于java - 使用 Maven 和 Dagger 生成的类对 Eclipse 中的 ADT 不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24342668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com