我正在创建一个带有启动画面的应用程序,但每次运行它都会出现异常。出现闪屏后,应显示菜单屏幕。但是,当我在模拟器中运行它时,由于这些例外,它会出现“停止工作”的消息。
这是我从运行应用程序获得的日志。
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>
我不知道在哪里解决我的错误,是吗?
答案 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:打开两个项目并将从清单开始的所有先前文件/代码复制到新项目(不会出现名称冲突,因为新项目具有正确的名称)。在复制文件的每个阶段之后,测试应用程序并在复制另一个文件之前看到它运行完好。