Unable to start activity ComponentInfo

H

HeroUser96

Ambitioniertes Mitglied
2
Hallo zusammen!

Ich habe folgenden Code:

public class Main extends Activity {
private Panel panel;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(new Panel(this, panel));

}

class Panel extends SurfaceView implements SurfaceHolder.Callback {

private ArrayList<View> _views = new ArrayList<View>();
private TextView Punkte = new TextView(null);

public Panel(Context context, Panel panel) {
super(context);

_views.add(Punkte);
panel.addTouchables(_views);

}


Wenn ich jetzt versuche zu starten kommt dieser Fehler im LogCat:


11-12 17:03:12.684: WARN/dalvikvm(8387): threadid=3: thread exiting with uncaught exception (group=0x4001e390)
11-12 17:03:12.684: ERROR/AndroidRuntime(8387): Uncaught handler: thread main exiting due to uncaught exception
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.test/de.test.Main}: java.lang.NullPointerException
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at android.app.ActivityThread.access$2200(ActivityThread.java:126)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at android.os.Handler.dispatchMessage(Handler.java:99)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at android.os.Looper.loop(Looper.java:123)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at android.app.ActivityThread.main(ActivityThread.java:4595)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at java.lang.reflect.Method.invokeNative(Native Method)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at java.lang.reflect.Method.invoke(Method.java:521)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at dalvik.system.NativeStart.main(Native Method)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): Caused by: java.lang.NullPointerException
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at android.view.View.<init>(View.java:1823)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at android.widget.TextView.<init>(TextView.java:335)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at android.widget.TextView.<init>(TextView.java:329)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at android.widget.TextView.<init>(TextView.java:324)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at de.test.Main$Panel.<init>(Main.java:35)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at de.test.Main.onCreate(Main.java:27)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2544)
11-12 17:03:12.724: ERROR/AndroidRuntime(8387): ... 11 more
11-12 17:03:12.754: INFO/Process(82): Sending signal. PID: 8387 SIG: 3

Kann mir irgendjemand helfen?
 
Acitivity im Manifest angegeben?
 
Ja hab ich.
Wenn ich die Stellen, wo ich versuche die TextView hinzuzufügen entferne, läufts auch.

Noch irgendwelche anderen Ideen?
 
private TextView Punkte = new TextView(null);

-.-
Da muss ein Context übergeben werden..: this
Du könntest zb DeineKlasse.this nehmen.
Oder im Konstrukter erst erzeugen und dann den context paramter nehmen.
 
Wahrscheinlich mache ich wieder irgendeinen Fehler, aber es stürtzt bei mir immer noch mit der selben Fehlermeldung ab.

Ich hab jetzt folgenden Code:

public class Main extends Activity {
private Panel panel;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(new Panel(this, panel));

}

class Panel extends SurfaceView implements SurfaceHolder.Callback {

private ArrayList<View> _views = new ArrayList<View>();
private TextView Punkte ;

public Panel(Context context, Panel panel) {
super(context);

setFocusable(true);

Punkte = new TextView(context);
_views.add(Punkte);
panel.addTouchables(_views);
}


Kann mir bitte nochmal jemand helfen??
 
setContentView(new Panel(this, panel));

Erstens verstehe ich nicht warum du da ein Panel als Parameter übergibst, und 2. ist dieser zu dem Zeitpunkt null, wodurch panel.addTouchables(_views); natürlich nicht möglich ist.
 
Danke für die schnelle Hilfe!

Jetzt stürzt es nicht mehr ab :D

Allerdings wird bei mir auch nichts angezeigt :(

Ich hab schon Größe geändert, text geändert...

Ich weiß ich stell mich ziemlich doof an :o

Muss ich noch irgendetwas beachten?
 
Wenn ich den Code so ändere, funktionierts:

public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(new Panel(this));

}

class Panel extends LinearLayout implements SurfaceHolder.Callback {
private Button Punkte ;


public Panel(Context context) {
super(context);


Punkte = new Button(context);
this.addView(Punkte);

neuesObjekt();
}

allerdings kann ich es so nicht machen, da bei einem LinearLayout andere (wichtigere) Funktionen fehlen.

Aber da sieht man das der Fehler im addTouchables() ist.

Weiß irgendjemand was Falsch sein könnte?
 

Ähnliche Themen

Laser5001
  • Laser5001
Antworten
2
Aufrufe
900
Laser5001
Laser5001
M
  • maksimilian
Antworten
15
Aufrufe
1.699
maksimilian
M
M
Antworten
8
Aufrufe
954
deek
D
Zurück
Oben Unten