ComponentInfo Fehler, komm nicht weiter!

  • 14 Antworten
  • Letztes Antwortdatum
JavaFuchs07

JavaFuchs07

Neues Mitglied
1
Hey liebe Community,

ich habe ein Problem mit einer Uebungsapp aus dem Buch "Android-Apps entwickeln" von Uwe Post.
Ich habe soweit alles verstanden und der Code ist fertig. Leider aber bekomm ich beim drücken des Startbuttons in der ersten Activity ein Fehler, sprich, die erste Activity wird mit Layout aufgerufen und beim Aufruf der zweiten mit dem Button gibts dann folgenden Fehler:
08-16 22:25:06.445: E/AndroidRuntime(274): FATAL EXCEPTION: main
08-16 22:25:06.445: E/AndroidRuntime(274): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.mueckenfang/com.example.mueckenfang.GameActivity}: java.lang.NullPointerException
08-16 22:25:06.445: E/AndroidRuntime(274): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
08-16 22:25:06.445: E/AndroidRuntime(274): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
08-16 22:25:06.445: E/AndroidRuntime(274): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
08-16 22:25:06.445: E/AndroidRuntime(274): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
08-16 22:25:06.445: E/AndroidRuntime(274): at android.os.Handler.dispatchMessage(Handler.java:99)
08-16 22:25:06.445: E/AndroidRuntime(274): at android.os.Looper.loop(Looper.java:123)
08-16 22:25:06.445: E/AndroidRuntime(274): at android.app.ActivityThread.main(ActivityThread.java:4627)
08-16 22:25:06.445: E/AndroidRuntime(274): at java.lang.reflect.Method.invokeNative(Native Method)
08-16 22:25:06.445: E/AndroidRuntime(274): at java.lang.reflect.Method.invoke(Method.java:521)
08-16 22:25:06.445: E/AndroidRuntime(274): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-16 22:25:06.445: E/AndroidRuntime(274): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-16 22:25:06.445: E/AndroidRuntime(274): at dalvik.system.NativeStart.main(Native Method)
08-16 22:25:06.445: E/AndroidRuntime(274): Caused by: java.lang.NullPointerException
08-16 22:25:06.445: E/AndroidRuntime(274): at android.app.Activity.findViewById(Activity.java:1637)
08-16 22:25:06.445: E/AndroidRuntime(274): at com.example.mueckenfang.GameActivity.<init>(GameActivity.java:32)
08-16 22:25:06.445: E/AndroidRuntime(274): at java.lang.Class.newInstanceImpl(Native Method)
08-16 22:25:06.445: E/AndroidRuntime(274): at java.lang.Class.newInstance(Class.java:1429)
08-16 22:25:06.445: E/AndroidRuntime(274): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
08-16 22:25:06.445: E/AndroidRuntime(274): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
08-16 22:25:06.445: E/AndroidRuntime(274): ... 11 more

Habe ich bereits das 3. Mal und ich bezweifle sehr stark, dass es am Code liegt.

Grüße JavaFuchs07!
 
Hast du neide Activitys im Manifest?

Mit freundlichen Grüßen
Greenstar
Gesendet von meinem Samsung Galaxy y Gt S5360 mit der Android-Hilfe.de App
 
Ja habe ich :)
Danke für die schnelle Antwort.

grüße JavaFuchs07
 
Du hast ne NullPointerException in Zeile 32 von GameActivity

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Zeile 32 ist bei mir:

FrameLayout spielbereich = (FrameLayout) findViewById(R.id.spielbereich);

Diese Referenz hole ich mir da, wo ich auch andere Variablen anlege, also über der eig. Klasse...
Ansonnsten müsste ich doch in jeder einzelnen Methode mit dieser Referenz auf das Objekt verweisen oder?
Kann ich die Zeile in die OnCreate() schreiben oder wo muss das hin?

Hier mal der Downloadlink des File Systems: http://netload.in/dateiugx5FLJ8Cg/MueckenFang.zip.htm

grüße JavaFuchs07
 
Zuletzt bearbeitet:
Das geht nur in onCreate. Mach über onCreate ne Zeile wie Objekt objektname;
Und dann rufst du in in onCreate findviewbyid auf den objektnamen auf. Dann kannst du das als Klassenvariable überall nutzen.

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Gleicher Fehler :(
Helft mir !

grüße JavaFuchs07
 
Poste mal bitte den Anfang der Klasse bis Ende onCreate.

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Code:
package com.example.mueckenfang;

import java.util.Date;
import java.util.Random;

import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.os.Handler;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;


public class GameActivity extends Activity implements OnClickListener, Runnable{
	
	
	private static final double ZEITSCHEIBEN = 0;
	private static final long HOECHSTALTER_MS = 2500;
	private int runde	=	0;
	private byte zeit	=	0;
	private int punkte	=	0;
	private int muecken;
	private float massstab;
	private int gefangeneMuecken;
	private int treffer;
	private Random zufallsgenerator	=	new Random();
	float zufallsZahl	=	zufallsgenerator.nextFloat();
	ImageView muecke	=	new ImageView(this);
	private Handler handler	=	new Handler();
	FrameLayout spielbereich	=	new FrameLayout(this);
	
	
	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.game);
        spielbereich	=	(FrameLayout)findViewById(R.id.spielbereich);
        massstab	=	getResources().getDisplayMetrics().density;
		muecke.setImageResource(R.drawable.muecke);
        muecke.setOnClickListener(this);
    }

grüße JavaFuchs07
 
NRW Framelayout(this) kann weg und das imageview musst du in onCreate setzen.

Wenn dann immernoch ein Fehler kommt bitte nochmal die LogCat Ausgabe Posten.

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Über onCreate schreibt du
Code:
private ImageView muecke;
damit du darauf in der gesamten Klasse zugreifen kannst. Allerdings kannst du da den context, hier einfach "this" nicht übergeben. Deswegeb in onCreate dann
Code:
muecke = New ImageView(this);
Dann sollte das hinhauen.

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Vielen Dank, hat geklappt. Jetzt passiert zwar noch nichts, Methoden funktionieren nicht usw., aber das wird ein anderer Fehler sein :(

grüße JavaFuchs07!
 
Ja dann musst du dann wohl selbst schauen, wie das funktionieren soll

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Mal kurz nen anderes Thema, bevor ich jetzt wieder ein neues Thema erstelle :rolleyes2:

Ich habe mir bei Panjutorials.de das Tutorial zur Android App angeschaut bis Tutorial 5, falls das jemand kennt. Jetzt bei dieser Methode:
Code:
public void surfaceCreated(SurfaceHolder holder) {
                Canvas theCanvas = surfaceHolder.lockCanvas(null);
                onDraw(theCanvas);
                surfaceHolder.unlockCanvasAndPost(theCanvas);
            }
bekomme ich bei onDraw(theCanvas); folgenden Fehler:
http://www.imagebanana.com/view/y61489om/Bildschirmfoto20130817um20.37.35.png


grüße JavaFuchs07
 
Zurück
Oben Unten