启动时应用程序崩溃

问题描述:

我想在String中使用'switch',仅在编译器级别1.7支持,所以Eclipse让我升级它,然后修复我的项目属性。从那时起,我的应用程序启动,甚至在OnCreate被调用之前,它崩溃了。我确实知道问题在于编译器级别,但我已将其恢复为默认值,但仍然无效......我该怎么办?启动时应用程序崩溃

谢谢!

堆栈跟踪:

06-25 17:39:09.039: D/AndroidRuntime(265): Shutting down VM 
06-25 17:39:09.049: W/dalvikvm(265): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
06-25 17:39:09.080: E/AndroidRuntime(265): FATAL EXCEPTION: main 
06-25 17:39:09.080: E/AndroidRuntime(265): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ronEven.iCards/com.ronEven.iCards.Main}: java.lang.ClassNotFoundException: com.ronEven.iCards.Main in loader dalvik.system.PathClassLoader[/data/app/com.ronEven.iCards-1.apk] 
06-25 17:39:09.080: E/AndroidRuntime(265): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585) 
06-25 17:39:09.080: E/AndroidRuntime(265): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
06-25 17:39:09.080: E/AndroidRuntime(265): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
06-25 17:39:09.080: E/AndroidRuntime(265): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
06-25 17:39:09.080: E/AndroidRuntime(265): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-25 17:39:09.080: E/AndroidRuntime(265): at android.os.Looper.loop(Looper.java:123) 
06-25 17:39:09.080: E/AndroidRuntime(265): at android.app.ActivityThread.main(ActivityThread.java:4627) 
06-25 17:39:09.080: E/AndroidRuntime(265): at java.lang.reflect.Method.invokeNative(Native Method) 
06-25 17:39:09.080: E/AndroidRuntime(265): at java.lang.reflect.Method.invoke(Method.java:521) 
06-25 17:39:09.080: E/AndroidRuntime(265): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
06-25 17:39:09.080: E/AndroidRuntime(265): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
06-25 17:39:09.080: E/AndroidRuntime(265): at dalvik.system.NativeStart.main(Native Method) 
06-25 17:39:09.080: E/AndroidRuntime(265): Caused by: java.lang.ClassNotFoundException: com.ronEven.iCards.Main in loader dalvik.system.PathClassLoader[/data/app/com.ronEven.iCards-1.apk] 
06-25 17:39:09.080: E/AndroidRuntime(265): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
06-25 17:39:09.080: E/AndroidRuntime(265): at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
06-25 17:39:09.080: E/AndroidRuntime(265): at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
06-25 17:39:09.080: E/AndroidRuntime(265): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
06-25 17:39:09.080: E/AndroidRuntime(265): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 
06-25 17:39:09.080: E/AndroidRuntime(265): ... 11 more 
+2

邮政堆栈跟踪。 – kosa

+0

对不起,没有问题,但怎么样? –

+0

在这种情况下,这可能是您的LogCat。编码角度下方应该有一个窗口,上面写着“LogCat”。根据需要选择尽可能多的条目,复制粘贴它们,然后将它们格式化为代码块。 –

您只能使用Java 1.6与Android。在1.6中的switch语句不支持字符串,而令人讨厌的是,它只是它的方式。

至于'恢复'你可以通过修复项目的步骤,但它会更容易创建一个新的项目,并开始新鲜。当你对Eclipse更加熟悉时,我的猜测是你的构建路径设置是半开放的,这就是你的挂断。林特可能能够向你指出问题,但这似乎是与Lint投掷硬币。

+0

很明显,我可以开始新鲜,但我不想......这是一个非常大规模的项目,我不想重组... –

+0

然后,您应该创建一个新的android项目,然后检查构建路径设置。所有问题都有99%的机会在构建路径中。 –

看到这个:Java 7 language features with Android

基本上,Java的1.7不能真正与Android使用。您可以使用1.7 JDK,但是您将*使用1.6。

简而言之,坚持1.6。

+0

我已经说过它没有帮助... –