3

我正在为 Froyo 作为最低版本和 Gingerbread 作为目标版本开发应用程序。因此,清单显示:

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

我有一个模拟器和一个带 Gingerbread 的 Nexus One,应用程序部署和安装正确。但是一启动就崩溃了,在日志中抛出的错误是:

09-18 06:35:11.240: ERROR/AndroidRuntime(382): FATAL EXCEPTION: main
09-18 06:35:11.240: ERROR/AndroidRuntime(382): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.my.package/com.my.package.Dashboard}: java.lang.ClassNotFoundException: com.my.package.Dashboard in loader dalvik.system.PathClassLoader[/data/app/com.my.package-2.apk]
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.os.Looper.loop(Looper.java:130)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.ActivityThread.main(ActivityThread.java:3683)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at java.lang.reflect.Method.invokeNative(Native Method)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at java.lang.reflect.Method.invoke(Method.java:507)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at dalvik.system.NativeStart.main(Native Method)
09-18 06:35:11.240: ERROR/AndroidRuntime(382): Caused by: java.lang.ClassNotFoundException: com.my.package.Dashboard in loader dalvik.system.PathClassLoader[/data/app/com.my.package-2.apk]
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     ... 11 more

是的,活动“仪表板”在清单中声明:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.my.package"
      android:versionCode="1"
      android:versionName="1.0"
      android:installLocation="auto">

      <activity android:name=".Dashboard"
              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>

      ...

那么这个问题可能与什么有关?这让我发疯了。

4

12 回答 12

8

我在 Eclipse 4.2 下开发时也遇到了这个问题。AndroidManifest.xml 文件引用了我的主要活动,包括正确的包和名称,但仍然无法加载。经过一些调试和注释后,我发现我的主要活动正在实现的接口是问题的根源。该接口是在一个单独的项目中定义的,但我未能在Java Build Path中引用该项目。因此,当我构建东西时,它们会正确构建,但是当我启动时我会立即遇到强制关闭,并出现与此问题相同的错误。

为了纠正这个问题,我右键单击 Android 项目,选择Java Build Path,将我的“通用代码”项目添加到Projects选项卡,然后在Order and Export选项卡上选中同一项目的复选框。之后,一切正常。

于 2012-07-15T16:15:26.157 回答
4

我通过恢复项目属性轻松解决了这个问题:

  • 右键单击您的项目
  • 安卓工具
  • 修复项目属性

然后您的依赖项将恢复为新的,一切都会好起来的!

于 2013-05-22T17:25:38.277 回答
3

我的解决方案是在 Project --> Properties --> Java Build Path --> Order and Export 中,你应该勾选你使用的条目。但是,如果您勾选 Android.jar,我也遇到过,它显示“转换为 Dalvik 格式失败,错误 1”

还删除除 Android.xx 之外的所有库,然后通过 Project --> Clean 清理您的项目,然后重新添加您的库(不要忘记按顺序打勾并导出)可能会解决“转换为 Dalvik 格式失败并出现错误1”的东西。

您需要检查的另一个地方是属性 --> Java 编译器 --> JDK 合规性。

于 2012-12-04T09:00:01.430 回答
2

对我来说,就像在 phonegap 升级期间一样(从 1.4 到 1.8.1 )。我必须更新根项目上的.project文件。我创建了一个新项目并将新文件与前者进行比较。

于 2012-06-26T09:26:46.313 回答
2

您可以通过更正清单文件中活动的类名来修复此错误

于 2012-12-20T17:04:14.383 回答
2

我通过检查 Java 构建路径中的 Order 和 Export 下的 Android Private Libraries 和 Android 依赖项解决了我的问题

于 2013-06-03T07:34:55.610 回答
2

作为记录,另一个可能导致此问题的简单原因可能在启动项目时被忽略,即您希望启动的活动可能没有扩展 Activity 或者是一个空类等。

于 2013-09-25T13:07:02.237 回答
0

事实证明,项目文件缺少正确制作 apk 所需的一些构建器。这就是它找不到 Dashboard 类的原因。

解决方案是创建一个空的 Android 项目,并将自动生成的 .project 和 .properties 文件与您损坏的项目中的文件进行比较。

于 2011-09-19T22:26:23.853 回答
0

我遇到了同样的问题,但我已经正确定义了一切。我从我的 SVN 中获取了同一项目的另一个副本,并且在第二个项目中遇到了这个错误。重启 Eclipse:这将刷新 Eclipse 的内存。它对我有用

于 2013-08-30T20:05:33.390 回答
0

最后我通过使两个 android-support-v4.jar 相同来解决它..只需在与您的项目相关的任何项目中复制任何 android-support-v4.jar 并替换它们..

使用将此添加到您的 android 清单

   <uses-library android:name="com.google.android.maps" />
于 2014-01-07T03:54:34.843 回答
0

我发现这篇文章有类似的问题和许多不同的可能解决方案。但是,就我而言,问题出在我的 Android 项目设置中。不知何故,我的项目的 Java 构建路径未链接到源文件夹。这就是为什么我的清单文件无法找到活动类的原因。我通过链接 src 文件夹解决了这个问题。为此,请右键单击项目“属性”->“Java 构建路径”。然后选择选项卡“来源”。检查您的 src 文件夹是否在此处列出。如果没有,请单击“添加文件夹...”,然后导航到项目的 src 文件夹。

于 2014-05-07T21:48:57.110 回答
0

今天我遇到了同样的问题,这是主类命名的问题。它是IdleActivity,一旦我通过设置IdleDnaActivity对其进行了更改,应用程序就会成功启动。

于 2014-06-04T05:48:14.633 回答