5

嗨,我已经添加AndroidAnnotations并配置了它;它生成带有下划线_作为后缀的活动,但是当我尝试午餐应用程序时,它给出了这个错误

   05-26 04:17:23.524: E/AndroidRuntime(5096): java.lang.RuntimeException: 
   Unable to instantiate activity
   ComponentInfo{android_app.candgo/android_app.candgo.HelloAndroidActivity_}:  
   java.lang.ClassNotFoundException: Didn't find class
   "android_app.candgo.HelloAndroidActivity_"    
   on path: /data/app/android_app.candgo-1.apk

关于为什么它不起作用的任何建议

PD:我有 ADT v22 PD:我已经在清单中注册了 HelloAndroidActivity_

这是我的 manifest.xml(抱歉耽搁了)

  <uses-sdk android:minSdkVersion="8"
            android:targetSdkVersion="16" />

  <application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name="MainActivity_">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
  </application>
</manifest>
4

4 回答 4

3

您需要将“.apt_generated”或 AA 输出到的任何文件夹添加到您的源目录列表中。在 Android Studio 中,您可以在 Project Settings -> Modules -> module_in_question -> Sources 中找到它

于 2013-05-29T18:33:17.230 回答
0

您需要在 manifest.xml 中注册活动类(AndroidAnnotations),例如: <activity android:name = "com.your.packageName" android:screenOrientation="portrait" android:configChanges = "orientation"/>
然后您可以使用它。

于 2013-05-26T03:21:50.563 回答
0

检查清单文件以获取活动条目。检查名称。

如果您将 ADT 更新到 rev 22。您可以在项目中没有更改任何内容但升级 eclipse android sdk 后尝试此 java.lang.ClassNotFoundException

检查清单中的包名称

    <manifest package="com.example.mypackaganame" //check the name

在应用程序标签下检查活动条目

    <activity
        android:name="com.example.mypackaganame.MainActivity"
        // this is the main activity
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>  

假设您有第二个活动。这就是您声明隐式意图的方式

     <activity
        android:name="com.example.mypackaganame.SecondActivity"
        // this is the Second activity
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.example.mypackaganame.SecondActivity" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>           

反对明确的意图

      <activity
        android:name=".SecondActivity"
        // this is the Second activity
        android:label="@string/app_name" >
    </activity>           
于 2013-05-26T03:23:57.530 回答
0

如果您使用的是Eclipse ,请按照以下步骤操作:

步骤 1. 转到Java Compiler并确保编译器合规级别设置为 1.6,否则将不会激活处理器

步骤 2. 转到Java Compiler>Annotation Processing并选择启用注释处理

步骤 3. 转到Java Compiler> Annotation Processing>Factory Path并添加处理器 JAR:androidannotations-XXXjar。

步骤 4 确认工作区重建

于 2016-01-06T08:50:48.910 回答