2013-05-02 33 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