Android dalvik.system.PathClassLoader中的ClassNotFoundException

Android dalvik.system.PathClassLoader中的ClassNotFoundException,android,Android,我正在运行一个android应用程序,其中使用的是ActionBar,但来自Android2.2 我添加了两个外部jar文件作为支持库 android-support-v7-appcompact.jar android-support-v13.jar 但是当我在我的设备上运行这个示例时,我发现了以下运行时错误 java.lang.RuntimeException:无法实例化活动 ComponentInfo{com.example.android.navigationdrawerexample/c

我正在运行一个android应用程序,其中使用的是
ActionBar
,但来自
Android2.2

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

  • android-support-v7-appcompact.jar
  • android-support-v13.jar
  • 但是当我在我的设备上运行这个示例时,我发现了以下运行时错误

    java.lang.RuntimeException:无法实例化活动 ComponentInfo{com.example.android.navigationdrawerexample/com.example.android.navigationdrawerexample.NavMainActivity}: java.lang.ClassNotFoundException: loader中的com.example.android.navigationdrawerexample.NavMain活动 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) Looper.loop(Looper.java:143)位于 main(ActivityThread.java:4914)位于 java.lang.reflect.Method.Invokenactive(本机方法)位于 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(本机方法)

    以下是menifest文件的内容

    <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文件的顺序


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

    您是否有一个名为NavMainActivity的类?是的,这是一个主和启动器活动尝试清理您的项目,并且在Buildpath中最后加载两个库。您可以更改顺序,但我遇到同样的错误请先尝试gen然后是src,一旦为我更改了,请尝试在日志中的eclipsein中没有与此应用程序相关的警告?你确定你删除了所有的logcat过滤器吗?是的,在logcat中有一个写着
    12-08 13:59:49.169:W/dalvikvm(12518):无法解析Lcom/example/android/navigationdrawerexample/NavMainActivity的超类;(18) 
    超类是
    ActionBarActivity
    你知道了。为什么ActionBarActivity不在您的apk中?它来自我在构建路径中添加的
    android-support-v7-appcompact.jar
    <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>