【问题标题】:ClassNotFoundException in dalvik.system.PathClassLoaderdalvik.system.PathClassLoader 中的 ClassNotFoundException
【发布时间】:2013-12-08 16:35:09
【问题描述】:

我正在运行一个我使用ActionBar 但来自android 2.2 支持的库的android 应用程序

我添加了两个外部 jar 文件作为支持库

  1. android-support-v7-appcompact.jar
  2. android-support-v13.jar

但是当我在我的设备中运行示例时,出现以下运行时错误

java.lang.RuntimeException:无法实例化活动 组件信息{com.example.android.navigationdrawerexample/com.example.android.navigationdrawerexample.NavMainActivity}: java.lang.ClassNotFoundException: 加载程序中的 com.example.android.navigationdrawerexample.NavMainActivity dalvik.system.PathClassLoader[/data/app/com.example.android.navigationdrawerexample-1.apk] 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2703) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2797) 在 android.app.ActivityThread.access$2300(ActivityThread.java:135) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2132) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:143) 在 android.app.ActivityThread.main(ActivityThread.java:4914) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:521) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 在 dalvik.system.NativeStart.main(Native Method)

Caused by: java.lang.ClassNotFoundException: com.example.android.navigationdrawerexample.NavMainActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.android.navigationdrawerexample-1.apk]
    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1033)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2695)

这是清单文件内容

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

    <uses-sdk android:minSdkVersion="7"  />

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

    </application>

</manifest>

jar 文件的顺序

【问题讨论】:

  • 你有一个名为 NavMainActivity 的类吗?
  • 是的,它是一个主要的启动器活动
  • 尝试清理你的项目,最后在 Buildpath 中加载 2 个库。您可以更改顺序
  • 已更改订单但我得到相同的错误
  • 先尝试 gen 然后 src ,一旦对我有用,就试试吧

标签: android


【解决方案1】:

您不仅应该查看错误,还应该查看警告(eclipse logcat 视图中的橙色文本)。 Dalvik 类加载之前通常会出现一些关于为什么 Dalvik 无法加载类的有趣信息,例如不存在超类。

【讨论】:

  • eclipse中没有与此应用程序相关的警告
  • 在 logcat 中?你确定你删除了所有的 logcat 过滤器吗?
  • 是的,在 logcat 中有一个写着12-08 13:59:49.169: W/dalvikvm(12518): Unable to resolve superclass of Lcom/example/android/navigationdrawerexample/NavMainActivity; (18),超类是ActionBarActivity
  • 你明白了。为什么 ActionBarActivity 不在您的 apk 中?
  • 它来自 android-support-v7-appcompact.jar 我已添加到我的构建路径中
猜你喜欢
  • 2016-10-19
  • 2023-01-29
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
  • 2021-11-29
  • 2012-05-23
  • 1970-01-01
相关资源
最近更新 更多