Activity kann nicht gestatrted werden

  • Antworten:6
Lukas
  • Forum-Beiträge: 6

29.01.2012, 12:05:46 via Website

Wie schon im Titel zu lesen ist habe ich das Problem dass ich in dem Menu, das durch die Menu-Hardware Taste aufgerufen wird, bei einem Button eine Fehlermeldung bekomme.

Hier der Code der Hauptactivity
1package com.mog.test;
2
3
4
5import android.app.Activity;
6import android.content.Context;
7import android.content.Intent;
8import android.graphics.Color;
9import android.os.Bundle;
10import android.view.Menu;
11import android.view.MenuInflater;
12import android.view.MenuItem;
13import android.view.View;
14import android.widget.Button;
15import android.widget.EditText;
16import android.widget.Toast;
17
18public class TestActivity extends Activity {
19 /** Called when the activity is first created. */
20 boolean gleich;
21 int wert;
22 int erg=0;
23 public boolean onCreateOptionsMenu(Menu menu) {
24 MenuInflater inflater = getMenuInflater();
25 inflater.inflate(R.menu.menu, menu);
26 return true;
27 }
28 public boolean onOptionsItemSelected(MenuItem item) {
29 switch (item.getItemId()) {
30 case R.id.tabelle: startActivity(new Intent(this, Tabelle.class));
31 break;
32 case R.id.help: startActivity(new Intent(this, Help.class));
33 break;
34
35 }
36 return true;
37 }
38 @Override
39 public void onCreate(Bundle savedInstanceState) {
40 super.onCreate(savedInstanceState);
41 setContentView(R.layout.main);
42
43 Button go = (Button) findViewById(R.id.go);
44
45 go.setOnClickListener(new View.OnClickListener() {
46 public void onClick(View view) {
47 EditText num = (EditText) findViewById(R.id.color);
48 String color1 = num.getText().toString();
49
50
51
52 int len = color1.length();
53 int erg1=0;
54
55 for(int ziffer = 0;ziffer<len; ziffer++){
56 //Das ist zwar sicher noch unschön aber es funkt und ich suche noch nach etwas
57 //besserem
58
59 char zeichen = color1.charAt(ziffer);
60 String kontrolle =String.valueOf(zeichen);
61 String varA = "A";
62 String varB = "B";
63 String varC = "C";
64 String varD = "D";
65 String varE = "E";
66 String varF = "F";
67 String vara = "a";
68 String varb = "b";
69 String varc = "c";
70 String vard = "d";
71 String vare = "e";
72 String varf = "f";
73 String var0 = "0";
74 String var1 = "1";
75 String var2 = "2";
76 String var3 = "3";
77 String var4 = "4";
78 String var5 = "5";
79 String var6 = "6";
80 String var7 = "7";
81 String var8 = "8";
82 String var9 = "9";
83 String zeichen1 = kontrolle;
84 gleich = (zeichen1.equals(varA))||(zeichen1.equals(varB))||(zeichen1.equals(varC))||(zeichen1.equals(varD))
85 ||(zeichen1.equals(varE))||(zeichen1.equals(varF))||(zeichen1.equals(var1))||(zeichen1.equals(var2))
86 ||(zeichen1.equals(var3))||(zeichen1.equals(var4))||(zeichen1.equals(var5))||(zeichen1.equals(var6))
87 ||(zeichen1.equals(var0))||(zeichen1.equals(var7))||(zeichen1.equals(var8))||(zeichen1.equals(var9))
88 ||(zeichen1.equals(vara))||(zeichen1.equals(varb))||(zeichen1.equals(varc))||(zeichen1.equals(vard))
89 ||(zeichen1.equals(vare))||(zeichen1.equals(varf));
90 if(gleich){wert=0;}
91 else{wert=1;}
92 int erg=erg1+wert;
93 erg1=erg;}
94
95
96
97
98 String first = "#";
99
100 String farbe = first + color1;
101 if(erg1<1){
102 if (len == 6) {
103 int wert = Color.parseColor(farbe);
104 setActivityBackgroundColor(wert);
105 } else {
106 Context context = getApplicationContext();
107 CharSequence text = "Die Eingabe muss aus 6 Zeichen bestehen";
108 int duration = Toast.LENGTH_SHORT;
109 Toast toast = Toast.makeText(context, text, duration);
110 toast.show();
111 }}
112 else{Toast.makeText(getBaseContext(), "Bitte eine Hexadezimale Zahl eingeben", Toast.LENGTH_LONG).show();}
113
114 }
115 });
116 }
117
118public void setActivityBackgroundColor(int color) {
119 View view = this.getWindow().getDecorView();
120 view.setBackgroundColor(color);
121}}

Hier das Menü

1<menu xmlns:android="http://schemas.android.com/apk/res/android">
2 <item android:id="@+id/help"
3 android:icon="@drawable/fragezeichen" />
4 <item android:id="@+id/tabelle"
5 android:icon="@drawable/tabelle"
6 />
7
8</menu>


Und die Log Cat

01-29 10:22:46.094: W/KeyCharacterMap(273): No keyboard for id 0
01-29 10:22:46.094: W/KeyCharacterMap(273): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
01-29 10:22:54.414: D/AndroidRuntime(273): Shutting down VM
01-29 10:22:54.414: W/dalvikvm(273): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
01-29 10:22:54.494: E/AndroidRuntime(273): FATAL EXCEPTION: main
01-29 10:22:54.494: E/AndroidRuntime(273): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mog.test/com.mog.test.Tabelle}: java.lang.ClassCastException: com.mog.test.Tabelle
01-29 10:22:54.494: E/AndroidRuntime(273): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
01-29 10:22:54.494: E/AndroidRuntime(273): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-29 10:22:54.494: E/AndroidRuntime(273): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-29 10:22:54.494: E/AndroidRuntime(273): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-29 10:22:54.494: E/AndroidRuntime(273): at android.os.Handler.dispatchMessage(Handler.java:99)
01-29 10:22:54.494: E/AndroidRuntime(273): at android.os.Looper.loop(Looper.java:123)
01-29 10:22:54.494: E/AndroidRuntime(273): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-29 10:22:54.494: E/AndroidRuntime(273): at java.lang.reflect.Method.invokeNative(Native Method)
01-29 10:22:54.494: E/AndroidRuntime(273): at java.lang.reflect.Method.invoke(Method.java:521)
01-29 10:22:54.494: E/AndroidRuntime(273): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-29 10:22:54.494: E/AndroidRuntime(273): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-29 10:22:54.494: E/AndroidRuntime(273): at dalvik.system.NativeStart.main(Native Method)
01-29 10:22:54.494: E/AndroidRuntime(273): Caused by: java.lang.ClassCastException: com.mog.test.Tabelle
01-29 10:22:54.494: E/AndroidRuntime(273): at com.mog.test.Tabelle.onCreate(Tabelle.java:37)
01-29 10:22:54.494: E/AndroidRuntime(273): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-29 10:22:54.494: E/AndroidRuntime(273): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01-29 10:22:54.494: E/AndroidRuntime(273): ... 11 more
01-29 10:22:57.775: I/Process(273): Sending signal. PID: 273 SIG: 9
01-29 10:55:37.094: W/KeyCharacterMap(307): No keyboard for id 0
01-29 10:55:37.094: W/KeyCharacterMap(307): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
01-29 10:55:38.404: D/AndroidRuntime(307): Shutting down VM
01-29 10:55:38.404: W/dalvikvm(307): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
01-29 10:55:38.434: E/AndroidRuntime(307): FATAL EXCEPTION: main
01-29 10:55:38.434: E/AndroidRuntime(307): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mog.test/com.mog.test.Tabelle}: java.lang.ClassCastException: com.mog.test.Tabelle
01-29 10:55:38.434: E/AndroidRuntime(307): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
01-29 10:55:38.434: E/AndroidRuntime(307): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-29 10:55:38.434: E/AndroidRuntime(307): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-29 10:55:38.434: E/AndroidRuntime(307): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-29 10:55:38.434: E/AndroidRuntime(307): at android.os.Handler.dispatchMessage(Handler.java:99)
01-29 10:55:38.434: E/AndroidRuntime(307): at android.os.Looper.loop(Looper.java:123)
01-29 10:55:38.434: E/AndroidRuntime(307): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-29 10:55:38.434: E/AndroidRuntime(307): at java.lang.reflect.Method.invokeNative(Native Method)
01-29 10:55:38.434: E/AndroidRuntime(307): at java.lang.reflect.Method.invoke(Method.java:521)
01-29 10:55:38.434: E/AndroidRuntime(307): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-29 10:55:38.434: E/AndroidRuntime(307): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-29 10:55:38.434: E/AndroidRuntime(307): at dalvik.system.NativeStart.main(Native Method)
01-29 10:55:38.434: E/AndroidRuntime(307): Caused by: java.lang.ClassCastException: com.mog.test.Tabelle
01-29 10:55:38.434: E/AndroidRuntime(307): at com.mog.test.Tabelle.onCreate(Tabelle.java:34)
01-29 10:55:38.434: E/AndroidRuntime(307): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-29 10:55:38.434: E/AndroidRuntime(307): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01-29 10:55:38.434: E/AndroidRuntime(307): ... 11 more

Antworten
Maximilian O
  • Forum-Beiträge: 990

29.01.2012, 13:35:50 via Website

Bist du schonmal mit dem Debugger durchgegangen um herauszufinden an welcher Stelle er die Exeption wirft?

MfG

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Lukas
  • Forum-Beiträge: 6

29.01.2012, 14:00:25 via Website

Ja hier :
test [Android Application]
DalvikVM[localhost:8612]
Thread [<1> main] (Suspended (exception RuntimeException))
ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2663
ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2679
ActivityThread.access$2300(ActivityThread, ActivityThread$ActivityRecord, Intent) line: 125
ActivityThread$H.handleMessage(Message) line: 2033
ActivityThread$H(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 123
ActivityThread.main(String[]) line: 4627
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 521
ZygoteInit$MethodAndArgsCaller.run() line: 868
ZygoteInit.main(String[]) line: 626
NativeStart.main(String[]) line: not available [native method]
Thread [<6> Binder Thread #2] (Running)
Thread [<5> Binder Thread #1] (Running)
Thread [<7> Binder Thread #3] (Running)



Aber ich weis leider nicht wie ich den auslesen soll

Antworten
Felix
  • Forum-Beiträge: 259

29.01.2012, 15:20:43 via Website

Lukas
Wie schon im Titel zu lesen ist habe ich das Problem dass ich in dem Menu, das durch die Menu-Hardware Taste aufgerufen wird, bei einem Button eine Fehlermeldung bekomme.

Wenn du mal den überflüssigen Rattenschwanz der Exception weglässt, bleibt übrig:

1java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mog.test/com.mog.test.Tabelle}: java.lang.ClassCastException: com.mog.test.Tabelle

Der Fehler wird dann wohl in Tabelle zu finden sein.

Hier der Code der Hauptactivity

Schön wäre es gewesen, wenn du alles überflüssige entfernt hättest, was zum Problem nichts beiträgt.


Felix.

Lukas

Antworten
Lukas
  • Forum-Beiträge: 6

29.01.2012, 16:57:54 via Website

Danke für die Tips ich bin noch neu.:grin:
Okay ich habs jetzt getestet und hab auch herausgefundne dass der Fehler in der Activity liegt.

— geändert am 29.01.2012, 17:02:42

Antworten
Felix
  • Forum-Beiträge: 259

29.01.2012, 17:04:05 via Website

Tach!

Lukas
Aber ich hab auch schon eine komplett leere Acitvity als "Tabelle" genommen und dann kommt noch immer die selbe Fehlermeldung

Genau das habe ich auch getan, um deinen Code zum Laufen zu bekommen, also eine Klasse Tabelle und eine Help, beide abgeleitet von Activity. Und bei mir kam der Fehler nicht. Er kam aber, wenn Tabelle nicht Activity erweitert, also nur ein Abkömmling von Object ist.


Felix.

Lukas

Antworten
Lukas
  • Forum-Beiträge: 6

29.01.2012, 17:17:09 via Website

Danke für die hilfe, das Problem hat sich jetzt schon gleöst.

— geändert am 29.01.2012, 17:21:30

Antworten