我正在尝试使用Android annotations框架,因为它看起来非常强大。我完全坚持基于它配置我的第一个项目。 我遵循了wiki的每一步,但在构建之后它不生成任何文件。
所以当我从清单中请求生成的类时:
<activity android:name=".MyActivity_"
android:label="@string/app_name">
我得到一个例外:
java.lang.ClassNotFoundException
我的活动与维基中的活动完全相同:
@EActivity(R.layout.main)
public class MyActivity extends Activity {
@ViewById
EditText myInput;
@ViewById(R.id.myTextView)
TextView textView;
@Click
void myButton() {
String name = myInput.getText().toString();
textView.setText("Hello "+name);
}
}
有什么想法吗?
编辑:刚刚找到一个目录“.apt_generated”,但是在构建之后它是空的。
答案 0 :(得分:4)
这似乎是一个AndroidAnnotations错误,应该在专用错误跟踪器上报告,在这里:http://code.google.com/p/androidannotations/issues/entry。您还可以使用AndroidAnnotations邮件列表http://groups.google.com/group/androidannotations
首先,我有几个问题:
您使用哪个IDE:Eclipse,Netbeans,IntelliJ?哪个版本?
您是使用Maven,Ant还是仅使用您的IDE来构建项目?
您的问题可能是由于以下几点:未触发注释处理,AA中的错误或不属于类路径的文件夹中生成的文件。
在Eclipse中,您可以从“窗口&gt;显示视图&gt;错误日志”视图中获取更多信息。如果触发了注释处理,您应该会看到一些有关AndroidAnnotations的消息。
答案 1 :(得分:0)
对于遇到此问题且领先答案无效的其他人,请运行构建,然后在项目中的某个位置搜索文件androidannotations.log。此日志文件已生成,可能提示出什么问题了。
对我来说,它有一条警告消息,它找不到AndroidManifest.xml。尽管这似乎只是一个警告,但实际上是错误的原因...找不到我的AndroidManifest.xml文件导致它没有生成应有的某些类。
检查是否具有xml文件。如果没有,解决方案是显而易见的。如果您确实拥有它,AA找不到文件的典型原因是因为它位于非标准位置-AA递归检查其为该xml文件生成文件的父目录,如果不存在,它将失败。就我而言,我的AndroidManifest.xml位于[项目根目录] / app / src / main中,这不是直接的祖先文件夹,所以就是问题所在。
您可以指定xml文件在项目build.gradle中的位置:
android {
defaultConfig {
javaCompileOptions {
annotationProcessorOptions {
arguments = ["androidManifestFile": "specify_location_of_AndroidManifest.xml_here"]
}
}
}
}