Java RunTimeException和ClassNotFoundException错误

时间:2015-04-21 22:02:10

标签: java android

我正在创建一个带有启动画面的应用程序,但每次运行它都会出现异常。出现闪屏后,应显示菜单屏幕。但是,当我在模拟器中运行它时,由于这些例外,它会出现“停止工作”的消息。

这是我从运行应用程序获得的日志。

04-21 20:36:25.373: E/AndroidRuntime(1203): FATAL EXCEPTION: main
04-21 20:36:25.373: E/AndroidRuntime(1203): Process: com.example.f1app, PID: 1203
04-21 20:36:25.373: E/AndroidRuntime(1203): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.f1app/com.example.f1app.SplashActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.f1app.SplashActivity" on path: DexPathList[[zip file "/data/app/com.example.f1app-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
04-21 20:36:25.373: E/AndroidRuntime(1203):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at android.app.ActivityThread.access$800(ActivityThread.java:144)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at android.os.Handler.dispatchMessage(Handler.java:102)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at android.os.Looper.loop(Looper.java:135)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at android.app.ActivityThread.main(ActivityThread.java:5221)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at java.lang.reflect.Method.invoke(Native Method)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at java.lang.reflect.Method.invoke(Method.java:372)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
04-21 20:36:25.373: E/AndroidRuntime(1203): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.f1app.SplashActivity" on path: DexPathList[[zip file "/data/app/com.example.f1app-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
04-21 20:36:25.373: E/AndroidRuntime(1203):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at android.app.Instrumentation.newActivity(Instrumentation.java:1065)
04-21 20:36:25.373: E/AndroidRuntime(1203):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199)
04-21 20:36:25.373: E/AndroidRuntime(1203):     ... 10 more
04-21 20:36:25.373: E/AndroidRuntime(1203):     Suppressed: java.lang.ClassNotFoundException: com.example.f1app.SplashActivity
04-21 20:36:25.373: E/AndroidRuntime(1203):         at java.lang.Class.classForName(Native Method)
04-21 20:36:25.373: E/AndroidRuntime(1203):         at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
04-21 20:36:25.373: E/AndroidRuntime(1203):         at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
04-21 20:36:25.373: E/AndroidRuntime(1203):         at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
04-21 20:36:25.373: E/AndroidRuntime(1203):         ... 13 more
04-21 20:36:25.373: E/AndroidRuntime(1203):     Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

这是Android Manifest XML文件:

     <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.f1app"
        android:versionCode="1"
        android:versionName="1.0" >

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

        <application
            android:allowBackup="true"
            android:icon="@drawable/f1logo"
            android:label="@string/F1App"
            android:theme="@style/AppTheme" >
           <activity
                android:name="com.example.F1App.MainActivity"
                android:label="@string/title_mainscreen" >



            </activity>
            <activity
                android:name="com.example.F1App.HelpScreen"
                android:label="@string/title_helpscreen" >


            </activity>
            <activity
                android:name="com.example.F1App.SplashActivity"
                android:label="@string/title_activity_splash" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />

                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity
                android:name="com.example.F1App.EventScreen"
                android:label="@string/title_eventdetails"
                 >
            </activity>
            <activity
                android:name="com.example.F1App.TicketScreen"
                android:label="@string/title_booktickets_screen"
                 >
            </activity>

        </application>
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
        <uses-permission android:name="android.permission.INTERNET"></uses-permission>
         </manifest>

我不知道在哪里解决我的错误,是吗?

3 个答案:

答案 0 :(得分:2)

在您宣布的AndroidManifest文件中:

android:name="com.example.F1App.SplashActivity"

请你把它改成:

android:name="com.example.f1app.SplashActivity"

答案 1 :(得分:0)

在您显示活动的完全限定名称为android:name="com.example.F1App.SplashActivity"。当您尝试启动com.example.f1app.SplashActivity时。请尝试在信件中修复这种不一致。

答案 2 :(得分:0)

我也遇到了同样的问题,我决定采取简单的方法。

步骤1:将您当前有此错误的项目重命名为其他名称,这样您就不会丢失文件或有用的代码(如何重命名文件:转到保存android工作室项目的文件夹在您的PC上找到该文件,例如c/users/john/AndroidStudio)。

步骤2:创建一个新项目并为其指定上一个错误项目的名称。现在这不是一个重复的项目,因为您已经将步骤1中的原始项目重命名为其他项目。

步骤3:打开两个项目并将从清单开始的所有先前文件/代码复制到新项目(不会出现名称冲突,因为新项目具有正确的名称)。在复制文件的每个阶段之后,测试应用程序并在复制另一个文件之前看到它运行完好。