1

我正在使用从其他人那里导入的 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中
  • 清单中的所有类路径都是正确的,我已经仔细检查了它们。
  • 所有活动都在清单中,具有正确的意图。
4

1 回答 1

4

并且库位于 Java 构建路径中

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

虽然手动添加 JAR 到你的构建路径会在编译时满足编译器,但它不会在运行时将 JAR 的内容添加到 APK 文件中,导致ClassNotFoundExceptions 之类的。

请注意,我指的是第三方 JAR,例如您的屏幕截图中的前四个条目。这些似乎都没有libs/,而且都需要。

all-JARs-must-be-in-rule 的唯一例外libs/是:

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

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

您的核心错误是 that com.me.app.ui.ActivityDashboardis not found,这表明这是来自您的四个 JAR 之一,这些 JAR 不在libs/.

于 2013-04-08T16:02:09.247 回答