App startet nicht (Android Studio)

Y

YouKnowNow

Neues Mitglied
0
//Also In meiner App kommen Lösungen zu einem Schulbuch rein auf der activity_Sites.xml sind Buttons die dich zu den Lektionen führen werden.Das problem ist, dass ich die App auf meinem Handy nicht starten kann:da steht die App wurde beendet kann mir jemand helfen? Und hier ist der Code zu den wichtigsten Dateien.

activity_main.xml:

Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="[URL]http://schemas.android.com/apk/res/android[/URL]"
    xmlns:tools="[URL]http://schemas.android.com/tools[/URL]"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.youknownow.lateinfelixuebersetzungen.MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Go"
        android:id="@+id/Button"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="158dp"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="@string/Welcome"
        android:id="@+id/textView"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="31dp"
        android:gravity="center"
        />
</RelativeLayout>

MainActivity.java:
package com.youknownow.lateinfelixuebersetzungen;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    Button btn = (Button)findViewById(R.id.Button);
    [USER=3517]@override[/USER]
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn.setOnClickListener(new View.OnClickListener() {
            [USER=3517]@override[/USER]
            public void onClick(View z) {
            startActivity(new Intent(MainActivity.this,Sites.class));
            }


        });
    }

    
}

Sites.java:
package com.youknownow.lateinfelixuebersetzungen;

import android.content.Intent;
import android.support.annotation.IdRes;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Sites extends AppCompatActivity {

    Button btn1 = (Button)findViewById(R.id.button);
    Button btn2 = (Button)findViewById(R.id.button1);
    Button btn3 = (Button)findViewById(R.id.button2);
    Button btn4 = (Button)findViewById(R.id.button3);
    Button btn5 = (Button)findViewById(R.id.button4);
    Button btn6 = (Button)findViewById(R.id.button5);
    Button btn7 = (Button)findViewById(R.id.button6);
    Button btn8 = (Button)findViewById(R.id.button7);
    [USER=3517]@override[/USER]
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sites);

        btn1.setOnClickListener(new View.OnClickListener() {
            [USER=3517]@override[/USER]
            public void onClick(View a) {
                startActivity(new Intent(Sites.this,Lek1.class));
            }
        });

        btn2.setOnClickListener(new View.OnClickListener() {
            [USER=3517]@override[/USER]
            public void onClick(View b) {
                startActivity(new Intent(Sites.this,Lek2.class));
            }
        });

        btn3.setOnClickListener(new View.OnClickListener() {
            [USER=3517]@override[/USER]
            public void onClick(View c) {
                startActivity(new Intent(Sites.this,Lek3.class));
            }
        });

        btn4.setOnClickListener(new View.OnClickListener() {
            [USER=3517]@override[/USER]
            public void onClick(View d) {
                startActivity(new Intent(Sites.this,Lek4.class));
            }
        });

        btn5.setOnClickListener(new View.OnClickListener() {
            [USER=3517]@override[/USER]
            public void onClick(View e) {
                startActivity(new Intent(Sites.this,Lek5.class));
            }
        });

        btn6.setOnClickListener(new View.OnClickListener() {
            [USER=3517]@override[/USER]
            public void onClick(View f) {
                startActivity(new Intent(Sites.this,Lek6.class));
            }
        });

        btn7.setOnClickListener(new View.OnClickListener() {
            [USER=3517]@override[/USER]
            public void onClick(View g) {
                startActivity(new Intent(Sites.this,Lek7.class));
            }
        });

        btn8.setOnClickListener(new View.OnClickListener() {
            [USER=3517]@override[/USER]
            public void onClick(View h) {
                startActivity(new Intent(Sites.this,Lek8.class));
            }
        });
    }
}
activity_sites.xml:
<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/L0"
        android:id="@+id/button"
        android:layout_marginTop="30dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/L1"
        android:id="@+id/button1"
        android:layout_marginTop="80dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/L2"
        android:id="@+id/button2"
        android:layout_marginTop="130dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/L3"
        android:id="@+id/button3"
        android:layout_marginTop="180dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/L4"
        android:id="@+id/button4"
        android:layout_marginTop="230dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/L5"
        android:id="@+id/button5"
        android:layout_marginTop="280dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/L6"
        android:id="@+id/button6"
        android:layout_marginTop="330dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/L7"
        android:id="@+id/button7"
        android:layout_marginTop="380dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="@string/L"
        android:id="@+id/textView2"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="von YouKnowNow"
        android:id="@+id/textView3"
        android:layout_alignParentBottom="true"
        android:layout_alignRight="@+id/textView2"
        android:layout_alignEnd="@+id/textView2" />
</RelativeLayout>
log:
20:06:09 Gradle sync started
20:07:37 Gradle sync completed
20:07:39 Executing tasks: [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies]
20:08:00 Gradle build finished in 22s 976ms
20:11:25 Enable smart keyboard internalization for Studio.: We have found out that you are using a non-english keyboard layout. You can enable smart layout support for Deutsch language.You can change this option in the settings of Studio more...
20:24:39 Gradle sync started
20:24:56 Gradle sync completed
20:24:57 Executing tasks: [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies]
20:25:17 Gradle build finished in 18s 314ms
20:38:50 Executing tasks: [:app:assembleDebug]
20:39:52 Gradle build finished in 1m 2s 466ms
20:39:53 Build APK
APK(s) generated successfully.
Show in Explorer
20:42:56 Executing tasks: [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies]
20:43:24 Gradle build finished in 28s 212ms
20:43:49 Executing tasks: [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:compileDebugSources, :app:compileDebugAndroidTestSources, :app:compileDebugUnitTestSources]
20:44:12 Gradle build finished in 23s 286ms
20:44:32 Executing tasks: [:app:assembleDebug]
20:45:32 Gradle build finished in 1m 0s 67ms
20:45:32 Build APK
APK(s) generated successfully.
Show in Explorer
20:54:54 Executing tasks: [:app:assembleDebug]
20:55:04 Gradle build finished in 9s 709ms
20:55:04 Build APK
APK(s) generated successfully.
Show in Explorer
20:59:07 Executing tasks: [:app:assembleDebug]
20:59:13 Gradle build finished in 6s 170ms
20:59:13 Build APK
APK(s) generated successfully.
Show in Explorer
21:09:49 Executing tasks: [:app:assembleDebug]
21:10:03 Gradle build finished in 14s 103ms
21:10:03 Build APK
APK(s) generated successfully.
Show in Explorer
21:11:42 Executing tasks: [:app:assembleDebug]
21:11:54 Gradle build finished in 11s 920ms
21:11:54 Build APK
APK(s) generated successfully.
Show in Explorer
 
Zuletzt bearbeitet von einem Moderator:
Hallo Know,

willkommen im Forum

Um dir annähernd helfen zu können : Was sagt denn dein Errorlog. ?
Was ich ggf. vermute : hast du deine Activities auch in der Manifest deklariert ?

P.S wir sind hier keine Roboter, sondern reale Personen, die in ihrer Freizeit Antworten.
Ein nettes "Hallo Danke und Bitte" wäre ein Mindestmaß

lg
Stefan
 
Zuletzt bearbeitet:
Hallo,

deine App wird beendet, weil ein NullpointerException aufgetreten ist. Der Grund liegt darin, dass im Code das Layout falsch eingebunden wird.

Die Zuordnung Button btn = (Button)findViewById(R.id.Button); steht an der falschen Stelle. Erst mit den Aufruf von setContentView() wird das Layout erzeugt. Du kannst den Button erst im Layout finden (bzw eine Instanz erzeugen), wenn ein Layout existiert.

In der App passiert folgendes: Als erstes wird bei der Erzeugung der Instanz der Klasse MainActivity eine Objekt mit der Id R.id.Button gesucht. Dieses wird nicht gefunden, da noch kein Layout existiert. Dh. die Methode findViewById(R.id.Button) weißt den btn den Wert null zu.

Soweit alles gut. Problematisch wird es erst an der Stelle btn.setOnClickListener(new View.OnClickListener() {...}. Hier wird versucht die Methode setOnClickListner() aufzurufen. Ein NullObjekt hat aber keine Methode setOnClickListner(). Das führt zu einen NullPointerException, und damit zum Absturz der App.

In der App müsste folgender Code stehen:
Code:
MainActivity.java:
package com.youknownow.lateinfelixuebersetzungen;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    Button btn;
    @override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button)findViewById(R.id.Button);

        btn.setOnClickListener(new View.OnClickListener() {
            @override
            public void onClick(View z) {
            startActivity(new Intent(MainActivity.this,Sites.class));
            }


        });
    }

 
}

Sites.java:
package com.youknownow.lateinfelixuebersetzungen;

import android.content.Intent;
import android.support.annotation.IdRes;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Sites extends AppCompatActivity {

    Button btn1;
    Button btn2;
    Button btn3;
    Button btn4;
    Button btn5;
    Button btn6;
    Button btn7;
    Button btn8 ;
    @override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sites);

        btn1 = (Button)findViewById(R.id.button);
        btn2 = (Button)findViewById(R.id.button1);
        btn3 = (Button)findViewById(R.id.button2);
        btn4 = (Button)findViewById(R.id.button3);
        btn5 = (Button)findViewById(R.id.button4);
        btn6 = (Button)findViewById(R.id.button5);
        btn7 = (Button)findViewById(R.id.button6);
        btn8 = (Button)findViewById(R.id.button7);

        btn1.setOnClickListener(new View.OnClickListener() {
            @override
            public void onClick(View a) {
                startActivity(new Intent(Sites.this,Lek1.class));
            }
        });

        btn2.setOnClickListener(new View.OnClickListener() {
            @override
            public void onClick(View b) {
                startActivity(new Intent(Sites.this,Lek2.class));
            }
        });

        btn3.setOnClickListener(new View.OnClickListener() {
            @override
            public void onClick(View c) {
                startActivity(new Intent(Sites.this,Lek3.class));
            }
        });

        btn4.setOnClickListener(new View.OnClickListener() {
            @override
            public void onClick(View d) {
                startActivity(new Intent(Sites.this,Lek4.class));
            }
        });

        btn5.setOnClickListener(new View.OnClickListener() {
            @override
            public void onClick(View e) {
                startActivity(new Intent(Sites.this,Lek5.class));
            }
        });

        btn6.setOnClickListener(new View.OnClickListener() {
            @override
            public void onClick(View f) {
                startActivity(new Intent(Sites.this,Lek6.class));
            }
        });

        btn7.setOnClickListener(new View.OnClickListener() {
           @override
            public void onClick(View g) {
                startActivity(new Intent(Sites.this,Lek7.class));
            }
        });

        btn8.setOnClickListener(new View.OnClickListener() {
            @override
            public void onClick(View h) {
                startActivity(new Intent(Sites.this,Lek8.class));
            }
        });
    }
}
 
  • Danke
Reaktionen: YouKnowNow und swa00
@markus.tullius vielen Dank du bist der Beste
 

Ähnliche Themen

D
Antworten
23
Aufrufe
2.633
Data2006
D
SaniMatthias
Antworten
19
Aufrufe
997
swa00
swa00
5
Antworten
0
Aufrufe
1.173
586920
5
Zurück
Oben Unten