Android Annotations框架似乎没有生成任何东西

时间:2011-08-22 15:27:18

标签: android annotations manifest classnotfoundexception android-annotations

我正在尝试使用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”,但是在构建之后它是空的。

2 个答案:

答案 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"]
            }
        }
    }

}