2013-05-02 132 views
0

我在Android中创建了多个activities,这是我的logcat错误输出。Android中有3个活动的多个活动

log.txt的

05-03 03:17:23.295: E/PhonePolicy(1854): Could not preload class for phone policy: com.android.internal.policy.impl.PhoneWindow$ContextMenuCallback 
05-03 03:17:37.044: W/dalvikvm(1854): threadid=1: thread exiting with uncaught exception (group=0x409db1f8) 
05-03 03:17:37.044: E/AndroidRuntime(1854): FATAL EXCEPTION: main 
05-03 03:17:37.044: E/AndroidRuntime(1854): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jumoun.itemp/com.jumoun.itemp.Converter}: java.lang.ClassCastException: android.widget.ImageButton cannot be cast to android.widget.Button 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at android.app.ActivityThread.access$600(ActivityThread.java:123) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at android.os.Looper.loop(Looper.java:137) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at android.app.ActivityThread.main(ActivityThread.java:4427) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at java.lang.reflect.Method.invoke(Method.java:511) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at dalvik.system.NativeStart.main(Native Method) 
05-03 03:17:37.044: E/AndroidRuntime(1854): Caused by: java.lang.ClassCastException: android.widget.ImageButton cannot be cast to android.widget.Button 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at com.jumoun.itemp.Converter.onCreate(Converter.java:41) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at android.app.Activity.performCreate(Activity.java:4465) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
05-03 03:17:37.044: E/AndroidRuntime(1854):  ... 11 more 
05-03 03:17:38.704: I/Process(1854): Sending signal. PID: 1854 SIG: 9 

这是我的java文件Converter.java http://pastebin.com/VNNPy7D5

谢谢你们:)

+1

看起来你的一个'Buttons'实际上是xml中的一个ImageButton。这是正确的吗?发布xml也有帮助 – codeMagic 2013-05-02 19:23:53

+0

谢谢叔叔,你说的没错,我只是仔细检查一下。 :) – 2013-05-02 19:25:38

+0

不客气。我还编辑了关于logcat的说明。一旦你明白如何阅读它,调试就容易得多。不要忘记接受:) – codeMagic 2013-05-02 19:33:25

回答

1

如果我算右这个

ibHome3 = (Button) findViewById(R.id.ibHome3); 

导致您的问题。你在你的xml中使用ImageButton,但在你的java声明中使用Button。只需将其更改为

ImageButton ibHome3; 

关于logcat的

而且,只是有个小小的建议上logcat的。如果在Fatal Exception之后找到Caused By的第一行,则可以更轻松地找出问题所在。这是

Caused by: java.lang.ClassCastException: android.widget.ImageButton cannot be cast to android.widget.Button 

这给例外

java.lang.ClassCastException 

然后找到后它引用您的软件包的第一道防线。这里

at com.jumoun.itemp.Converter.onCreate(Converter.java:41) 

这告诉我们问题在Converter.java开始于第41行

0

在41行,你要投你的按钮的ImageButton,而不是按钮:

ibHome3 = (ImageButton) findViewById(R.id.ibHome3); 
1

您的布局文件两个按钮,对不对?他们看起来被定义为XML文件中的ImageButton。在您的活动中,您将其声明为Button并尝试将其转换为(Button)。将您的类型更改为您的活动文件中的ImageButton。它可能会解决你的问题。

+1

是的叔叔,我的错误:) – 2013-05-03 01:01:55