MonkeyTalk和Butterknife ViewInjector生成-(Android+注释+AspectJ+Eclipse)

MonkeyTalk和Butterknife ViewInjector生成-(Android+注释+AspectJ+Eclipse),android,aspectj,monkeytalk,butterknife,Android,Aspectj,Monkeytalk,Butterknife,我一直在使用ButterKnife成功地在我的应用程序中注入视图,如下所示: @InjectView(android.R.id.text1) TextView mMessageText; @InjectView(android.R.id.button1) ImageView mButton; ... then later... View.inflate(ctx, R.layout.layout_message_with_button, this); ButterKnife.inject(this

我一直在使用ButterKnife成功地在我的应用程序中注入视图,如下所示:

@InjectView(android.R.id.text1)
TextView mMessageText;
@InjectView(android.R.id.button1)
ImageView mButton;
... then later...
View.inflate(ctx, R.layout.layout_message_with_button, this);
ButterKnife.inject(this);
mMessageText.setText("Some Text");
今天早上我集成了MonkeyTalk进行了一些测试,现在我的注射似乎失败了。我已经删除/读取了ButterKnife的注释处理,但这似乎并没有解决问题。使用findViewById修复了发现视图的问题,但此时将项目更改为直接使用findViewById并不是一个真正的选项

我找不到关于库之间冲突的任何信息,或者通常使用AspectJ和ButterKnife,所以希望这里的人能够帮助我了解我可能做错了什么,或者它们是否只是一般不兼容

我正在使用ButterKnife 4.0.1和MonkeyTalk代理2.0.9

更新: 我还尝试在Eclipse项目属性中更改库的构建顺序,但这似乎也没有帮助

更新: 我把范围缩小到生成的文件,而不是在ButterKnife中创建的文件。它似乎与org.eclipse.ajdt.core.ajbuilder中未发生的注释处理有关。当我将org.eclipse.jdt.core.javabuilder添加到.project中时,正如这里所建议的:,会生成类,但是在运行时,在.ajc文件上会出现NoClassDefFoundError。知道如何让注释处理器在ajbuilder中运行吗?这似乎是解决我问题的正确方法

更新: 从这篇文章中可以看出,可以使用Eclipse4.4在同一个项目中处理方面和注释。然而,ADT 23+Eclipse4.4+AspectJ的组合似乎非常不稳定,似乎无论如何都不能从ButterKnife的注释生成代码。有人知道安卓工作室是否能帮上忙吗

更新:
我将我的项目转换为Android Studio,看起来方面和注释都在工作。我知道我在这些方面做得还不够好,因为直到我将Jake Wharton的库添加到Android项目中,它们才开始处理。

我想检查您使用的AJDT版本是什么——是AJDT 2.2.3吗?这是来自开发人员更新站点:因为AJDT的最新发布版本中没有可以处理注释的AspectJ。我会说AJ中的注释处理支持是非常新的,但是如果java builder使用了库中的注释处理器,那么aspectj builder也应该使用。我认为应该是2.2.4,而不是2.2.3-2.2.3是最新发布的版本。2.2.4是Eclipse4.4的开发版本。我使用的版本来自于那个更新站点。我认为在Eclipse4.4+AJDT的例子中,是Android开发工具的添加导致了不稳定性。作为一个测试,我最终将所有东西移植到了Android Studio,它似乎能够处理方面和注释,尽管我不能100%确定我到底做了什么来实现这一点。似乎在Eclipse方面,我需要3.8/ADT/AJDT没有来自AJDT的注释,或者4.4/ADT/AJDT没有对4.4稳定的ADT。等我有时间的时候,我可能会回到这个问题上来