无法实例化活动ComponentInfo

时间:2013-04-08 15:56:07

标签: android eclipse

我正在使用我从其他人导入的Android项目。我已将所有依赖项排序,项目中没有错误,但是当我尝试启动它时,我得到:

04-08 16:49:41.761: E/AndroidRuntime(19254): FATAL EXCEPTION: main
04-08 16:49:41.761: E/AndroidRuntime(19254): java.lang.RuntimeException: Unable to
      instantiate activity ComponentInfo{com.me.app/com.me.app.ui.ActivityDashboard}: 
      java.lang.ClassNotFoundException: Didn't find class 
      "com.me.app.ui.ActivityDashboard" 
      on path: /data/app/com.me.app-1.apk

我的宣言:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Light.NoTitleBar">
    <activity
        android:name=".ui.ActivityDashboard"
        android:label="@string/app_name" 
        android:screenOrientation="portrait">
            <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    ...
</application>

这似乎是一个常见的问题,我已经阅读了我发现并完成以下所有其他问题,但都无济于事:

  • ADT和SDK已完全更新
  • 我正在构建针对Android 2.3.3(SDK 10)
  • 这是在Android Build Target下选择的,而Library是在Java Build Path
  • 清单中的所有类路径都是正确的,我已经仔细检查了所有类路径。
  • 所有活动都在清单中,并且具有正确的意图。

1 个答案:

答案 0 :(得分:4)

  

并且库位于Java Build Path

这是不正确的。请退出此更改,然后将JAR移动到项目的libs/目录中。

虽然手动向构建路径添加JAR将在编译时满足编译器,但它不会在运行时将JAR的内容添加到APK文件,从而导致ClassNotFoundException等。

请注意,我指的是第三方JAR,例如the first four entries in your screenshot。这些似乎都不在libs/中,而且都需要。{/ p>

全JAR必须进入libs/规则的唯一例外是:

  1. Android自己的平台JAR,通过选择构建目标附加到您的项目(原因:此JAR的内容特别不需要包含在您的APK中)

  2. Android库项目,它们有自己的libs/目录,供他们引用的任何第三方JAR

  3. 您的核心错误是找不到com.me.app.ui.ActivityDashboard,表明这是来自libs/以外的四个JAR之一。