2

我正在制作我的应用程序的付费/免费版本,所以有一个两个应用程序使用的“图书馆项目”。

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

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

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

Eclipse 中有没有办法解决这个问题?还是 Android 注释有问题?

4

3 回答 3

3

这似乎是一个 AndroidAnnotations 错误,应该在专用错误跟踪器上报告。

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

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

于 2011-07-19T09:42:14.100 回答
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() {
  }
}
于 2013-09-11T01:38:26.197 回答
1

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

于 2011-07-05T09:57:53.140 回答