在Library Project Eclipse中使用AndroidAnnotations的Android

时间:2011-07-05 09:23:16

标签: android eclipse annotations library-project android-annotations

我正在制作我的应用程序的付费/免费版本,因此有两个应用程序使用的“图书馆计划”。

我正在尝试使用Android Annotations来清理我的代码: http://code.google.com/p/androidannotations/

不幸的是,当我在我的共享库项目中使用它时,我的一个项目在Eclipse中获取错误: xActivity_类型已经定义为xActivity_.java /ProjectName/.apt_generated/lib/activities/

因为Android Annotations会在文件夹中自动创建一个带有额外“_”的新活动.apt_generated允许其中一个应用程序创建此文件,但另一个应用程序会收到“已定义”错误。

Eclipse中有办法解决这个问题吗?或者这是Android Annotations的问题吗?

3 个答案:

答案 0 :(得分:3)

这似乎是一个AndroidAnnotations错误,应该在专用的bug tracker上报告。

AndroidAnnotations的设计并未考虑此用例,但这仍然是一个非常有效的用例。问题似乎是活动是在共享库项目中生成的,应该在每个依赖项目中生成,我是对的吗?

(请在错误跟踪器中回答)

答案 1 :(得分:3)

这个问题很老了,但我认为我应该提一下现在支持在库中使用的android注释:

https://github.com/excilys/androidannotations/wiki/Library-projects

有一点需要注意的是,由于android库项目生成R类的方式,您无法直接在注释中引用资源。例如,你不能这样做:

@EActivity(R.layout.myLayout)
public class MyActivity extends Activity {

 @Click(R.id.myButton1, R.id.myButton2})
 public void someButtonClicked() {
 }
}

相反,你必须这样做:

@EActivity(resName="myLayout")
public class MyActivity extends Activity {

  @Click(resName={"myButton1", "myButton2"})
     public void someButtonClicked() {
  }
}

答案 2 :(得分:1)

我只知道AndroidAnnotations(这似乎是一个很好的工具!)但我认为如果你使用不同的项目(共享同一个库)这样做,你的问题应该得到解决。