2012-02-22 69 views
0

我正在开发一个android应用程序,一旦AVD打开,我解锁设备并单击菜单,就会出现“应用程序意外停止”错误。以下是我的logcat日志。Android应用程序在开启时崩溃

02-22 11:34:38.220: D/AndroidRuntime(336): Shutting down VM 
02-22 11:34:38.220: W/dalvikvm(336): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
02-22 11:34:38.290: E/AndroidRuntime(336): FATAL EXCEPTION: main 
02-22 11:34:38.290: E/AndroidRuntime(336): java.lang.RuntimeException: Unable to instantiate application com.compliment.ComplimentGenerator: java.lang.ClassCastException: com.compliment.ComplimentGenerator 
02-22 11:34:38.290: E/AndroidRuntime(336): at android.app.LoadedApk.makeApplication(LoadedApk.java:466) 
02-22 11:34:38.290: E/AndroidRuntime(336): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3260) 
02-22 11:34:38.290: E/AndroidRuntime(336): at android.app.ActivityThread.access$2200(ActivityThread.java:117) 
02-22 11:34:38.290: E/AndroidRuntime(336): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969) 
02-22 11:34:38.290: E/AndroidRuntime(336): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-22 11:34:38.290: E/AndroidRuntime(336): at android.os.Looper.loop(Looper.java:123) 
02-22 11:34:38.290: E/AndroidRuntime(336): at android.app.ActivityThread.main(ActivityThread.java:3683) 
02-22 11:34:38.290: E/AndroidRuntime(336): at java.lang.reflect.Method.invokeNative(Native Method) 
02-22 11:34:38.290: E/AndroidRuntime(336): at java.lang.reflect.Method.invoke(Method.java:507) 
02-22 11:34:38.290: E/AndroidRuntime(336): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-22 11:34:38.290: E/AndroidRuntime(336): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-22 11:34:38.290: E/AndroidRuntime(336): at dalvik.system.NativeStart.main(Native Method) 
02-22 11:34:38.290: E/AndroidRuntime(336): Caused by: java.lang.ClassCastException: com.compliment.ComplimentGenerator 
02-22 11:34:38.290: E/AndroidRuntime(336): at android.app.Instrumentation.newApplication(Instrumentation.java:957) 
02-22 11:34:38.290: E/AndroidRuntime(336): at android.app.Instrumentation.newApplication(Instrumentation.java:942) 
02-22 11:34:38.290: E/AndroidRuntime(336): at android.app.LoadedApk.makeApplication(LoadedApk.java:461) 
02-22 11:34:38.290: E/AndroidRuntime(336): ... 11 more 

编辑:代码在这里可供选择:http://pastebin.com/VSvWvgGa

EDIT2:XML可在这里:http://pastebin.com/uGLpyUcW

EDIT3:使初步改变Druv建议后,我得到新的logcat的错误,我已经更新我的帖子这些错误

EDIT4:R.layout.main.xml:http://pastebin.com/Qe8Bx47m

+0

'java.lang.ClassCastException'检查你的代码 – platinummonkey 2012-02-22 16:08:16

+0

java.lang.ClassCastException:com.compliment.ComplimentGenerator,似乎您试图如果没有代码很难找出发生了什么 – kosa 2012-02-22 16:08:34

+0

你正在ComplimentGenerator'类中施加不适当的东西,你能否发布该类的任何相关部分? – koopaking3 2012-02-22 16:09:44

回答

3
AndroidManifest.xml 
    <application android:name="ComplimentGenerator" android:icon="@drawable/icon"> 

Just Rename Your 
     android:name="ComplimentGenerator" to android:label="ComplimentGenerator" 
+0

非常感谢。那就是诀窍 – Parth 2012-02-22 17:21:19

1

你可以添加com.compliment在这里:

<activity android:name="com.compliment.ComplimentGenerator" android:label="ComplimentGenerator"> 

编辑: 更改<activity android:name="ComplimentGenerator" android:label="ComplimentGenerator"><activity android:icon="@drawable/icon" android:label="ComplimentGenerator">docs

公共类应用

基地为那些谁需要维护类全局应用程序状态 您可以通过在AndroidManifest.xml中 的标签指定其名字提供自己的,这将导致中创建您的 应用程序/包的过程中,当类 进行实例为你

通常不需要继承应用程序。在大多数情况下, 静态单例可以在更模块化的 方式中提供相同的功能。如果你的单例需要一个全局上下文(例如注册 广播接收器),那么检索它的函数可以给出一个 上下文,当 首次构造单例时,上下文在内部使用Context.getApplicationContext()。

换句话说,当你添加android:name时,ComplimentGenerator类被实例化。但是,ComplimentGenerator不是继承应用程序(这是必需的),导致ClassCastException。

+0

我已经添加了它,并且我得到了新的logcat错误,我已经更新了原始文章。 – Parth 2012-02-22 16:37:31

+0

我们可以看到你的R.layout.main? – 2012-02-22 16:41:37

+0

我使用main.xml编辑了我的原始帖子:http://pastebin.com/Qe8Bx47m – Parth 2012-02-22 16:43:44

1

我认为“android:name”属性值是错误的!使用以下(先从 “”):

<activity android:name=".ComplimentGenerator" android:label="ComplimentGenerator"> 

因此,Android将知道起始活动是com.compliment.ComplimentGenerator

  • “com.compliment” 来自“包“属性值

  • ”。ComplimentGenerator”来自于 “机器人:name” 属性值