我正在制作我的应用程序的付费/免费版本,因此有两个应用程序使用的“图书馆计划”。
我正在尝试使用Android Annotations来清理我的代码: http://code.google.com/p/androidannotations/
不幸的是,当我在我的共享库项目中使用它时,我的一个项目在Eclipse中获取错误: xActivity_类型已经定义为xActivity_.java /ProjectName/.apt_generated/lib/activities/
因为Android Annotations会在文件夹中自动创建一个带有额外“_”的新活动.apt_generated允许其中一个应用程序创建此文件,但另一个应用程序会收到“已定义”错误。
Eclipse中有办法解决这个问题吗?或者这是Android Annotations的问题吗?
答案 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(这似乎是一个很好的工具!)但我认为如果你使用不同的项目(共享同一个库)这样做,你的问题应该得到解决。