Eclipse,Maven,AndroidAnnotations:MainActivity_已生成但未包含在apk中

时间:2014-02-06 11:19:23

标签: android eclipse maven android-annotations

我知道这里有一些与我的相似的问题,但仍然没有任何答案可以帮助我。

场景是这样的:我正在使用Eclipse + ADT来开发Android应用程序。我最近转移到Maven进行依赖和构建管理,以便更容易包含Spring for Android,Google Play Services等。目前使用Maven构建(从命令行)可以正常工作但是使用Eclipse运行应用程序不再起作用了

当我:

  • 向pom.xml添加新依赖项
  • 执行mvn eclipse:eclipse以使Eclipse中的新依赖项可用(这是正确的,对吗?)

我收到此错误:" / foo / gen已存在,但不是源文件夹。转换为源文件夹或重命名它。"

我尝试了几种使这个错误消失的方法,但我得到的是其他错误: 当我:

  • 转到“属性”> Java构建路径(源选项卡)>添加文件夹...>检查gen>好的>行

此错误替换为"类型BuildConfig已定义"。

所以我:

  • 转到“属性”> Java构建路径(源选项卡)>选择Foo / target / generated-sources / r>删除

好的,现在没有错误,但是当我尝试在我的设备上运行应用程序时,我得到:

  

"引起:java.lang.ClassNotFoundException:没找到类" com.bar.foo.MainActivity _"在路径上:/data/app/com.bar.foo-1.apk

然后检查bin / classes,我发现确实生成了MainActivity_.class - 但不知何故它不包含在apk中,我猜?

请注意,我也可以看到源代码中的类,因此以下内容可以正常工作:

BrowseNodesActivity_.intent(this).start();

当我查看属性> Java Build Path(Order and Export选项卡)我看到文件夹/.apt_generated位于列表的最底部。这是一个问题吗?

顺便说一句,如果我从构建路径中删除Maven生成的所有目标文件夹,那么错误就完全相同,这样构建路径(Source选项卡)只显示src,gen和.apt_generated

有没有办法让这种方法 - 使用Maven进行依赖和构建管理但不使用Eclipse 中的任何Maven插件 - 工作?

无论如何,我也尝试了以下方法:

https://code.google.com/p/maven-android-plugin/issues/detail?id=30

我通过以下方式安装了Eclipse Maven支持:

  • http://download.eclipse.org/technology/m2e/releases
  • 安装m2e
  • 安装Eclipse Marketplace
  • 试图从m2e-android关注这个方法(SO赢了,让我发布另一个链接)
  • 我去了Eclipse Marketplace
  • type" android m2e"
  • 找到一个名为" Android Configurator for M2E" (与" Android连接器"?相同)并安装它
  • 右键单击项目>配置>转换为Maven项目

然后我的pom.xml中出现错误 - "插件执行未被生命周期覆盖... com.jayway.maven.plugins.android.generation2"

所以,总而言之,使用Maven的Eclipse插件并没有...

有没有办法让我的设置中的所有组件以某种方式一起工作:Eclipse,ADT,Maven,AndroidAnnotations(以及可选的m2e和m2e-android)?

1 个答案:

答案 0 :(得分:0)

您必须为Eclipse安装m2em2e-aptm2e-android插件。如果插件执行未被生命周期错误覆盖,请为其应用快速修复。显示此错误是因为m2e-android无法使用AAR库。启用m2e-apt配置JDT以使用AndroidAnnotations处理器,您可以将其读取here。如果完成,右键单击项目 - > Maven - >更新项目。此时您的应用应该编译,但生成的类可能不包含在APK中。要解决此问题,请修改.classpath。 workin_cp.xml 文件中的正确类路径为here