我有一个使用 maven-android 插件的 android 项目设置。 该插件遵循 maven 输出文件夹作为R.java
文件的位置(即 target/generated-sources/r
)。
但是,在 Eclipse 中使用此项目时,我无法将 aapt 配置为依赖该文件夹。
即使我手动进入项目属性并手动设置文件夹,ADT 插件也会进入并仅重置一些设置(即将/gen
文件夹添加回源文件夹,并将输出文件夹恢复为 /bin/classes
而不是/target/classes
),同时保留 maven /target/generated-sources/r
文件夹并破坏项目的构建。
我想在Eclipse ADT中使用默认的Maven文件夹结构。 关于我该如何做到这一点的任何想法?
谢谢
回应评论:
- 是的,我使用的是 m2e-android 插件。
- 因为ADT在
/gen
中仍然生成R.java,如果target/generated-sources/r
下仍然存在R.java,Eclipse将无法编译,因为重复的类定义。
不幸的是,适用于 M2E 的 Android 连接器不支持将生成的文件夹(如 ADT gen 文件夹)移动到其他目录。这是 ADT 的一个限制,尽管有一张票证可以探索绕过此限制的方法:
https://github.com/rgladwell/m2e-android/issues/68
如果您想保持更新,请对此票发表评论。
这似乎对我有用:
让 ADT 将 gen 保留为源文件夹,但将该源文件夹的输出文件夹更改为/target/classes
。
我可以从命令行构建 eclipse 并使用 maven,并且在这两种情况下我都不会遇到重复的 R 类问题。 本质上,Eclipse在/gen
中生成R.java
文件,而maven在/target/generated-sources/r
中生成它,但两个版本都把R.class
文件放在/target/classes下。
注意:有一次我使用 build-helper-maven-plugin
将/gen
作为pom.xml
中的附加源目录添加,我不得不删除它。