10

我正在尝试使用Android 注释框架,因为它看起来非常强大。我非常坚持基于它配置我的第一个项目。我遵循了wiki的每一步,但它在构建后不会生成任何文件。

因此,当我从清单中请求生成的类时:

<activity android:name=".MyActivity_"
   android:label="@string/app_name">

我得到一个例外:

java.lang.ClassNotFoundException

我的活动与 wiki 中的活动完全相同:

@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”,但在构建后它是空的。

4

2 回答 2

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 中,您可以从“Window > Show View > Error Log”视图中获得更多信息。如果触发注释处理,您应该会看到一些关于 AndroidAnnotations 的消息。

于 2011-08-23T07:54:41.023 回答
0

对于遇到此问题且主要答案不起作用的其他人,请运行构建,然后在项目中的某处搜索文件 androidannotations.log。此日志文件已生成,可能会提示出现了什么问题。

对我来说,它有一条警告消息,它无法找到 AndroidManifest.xml。虽然这看起来只是一个警告,但它实际上是错误的原因......没有找到我的 AndroidManifest.xml 文件导致它没有生成它应该有的一些类。

检查是否有 xml 文件。如果没有,解决方案是显而易见的。如果您确实拥有它,AA 找不到该文件的典型原因是因为它位于非标准位置 - AA 递归地检查上面为该 xml 文件生成文件的父目录,如果不存在则将失败。就我而言,我的 AndroidManifest.xml 位于 [project root]/app/src/main 中,这不是直接的祖先文件夹,所以这就是问题所在。

您可以指定 xml 文件在项目 build.gradle 中的位置:

android {
    defaultConfig {
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ["androidManifestFile": "specify_location_of_AndroidManifest.xml_here"]
            }
        }
    }

}

于 2020-11-11T17:14:17.747 回答