Code bei Button wird nicht ausgeführt

N

N3cron

Fortgeschrittenes Mitglied
1
Hall zusammen. Ich habe gerade erst damit angefangen mich mit Java zu beschäftigen. Hab bisher noch nie etwas mit "code" zu tun gehabt.
Ich hoffe ihr koennt mir weiter helfen. Ich habe ein ganzen einfaches app erstellt. 1 Button, und wenn man ihn anklickt soll ein Text ausgegeben werden. Soweit so gut. Eclipse zeigt mir keinen Fehler an. Habe die app auf dem Handy sowie auf dem Emulator ausgeführt.

Bei beiden passiert folgendes. App startet. Button sichtbar. Klick mich button wird geklickt. Ab dort ist ende. Die Ausgabe des Textes erscheint erst garnicht, da sofort " Beendet Button" kommt. Die App wird dann sofort geschlossen. Ich habe im Internet was von Logcat gelesen. Hab es dann mal ausprobiert. Ich haenge es mal hier an. Hoffe ihr koennt mir da weiter helfen.
 

Anhänge

  • log.txt
    107 Bytes · Aufrufe: 123
  • logError.txt
    586 Bytes · Aufrufe: 131
Zuletzt bearbeitet von einem Moderator:
So, erscht einmal postet du bitte die gesamte LogCat-Ausgabe, dann können wir dir helfen :) und du kannst sie auch einfach in den Text einfügen statt extra eine datei hochzuladen^^ Am besten benutzt du [ CODE] FEHLERMELDUNG [ /CODE] ohne leerzeichen in den klammern, dann wird es übersichtlich dargestellt
 
Hi. Danke. Leider weiss ich nicht "Anfänger" wo ich das eintragen soll. Wenn du mir sagst wo, kann ich es gerne probieren. Ansonsten würde ich eine Datei mit "verbose, debug, info, warn, error,oder assert hochladen. Das ist das was ich rechts bei logcat auswählen kann.
 
Wenn logcat einen fehler anzeigt, kommen meist an die 20 Zeilen Fehlermeldung. Es wäre gut wenn du das einfach in deinen Kommentar schreibst. Das sieht dann zB so aus. Und deine Activity kannst du am besten gleich auch anhängen
 
Geantwortet hast du auf meine Frage jetzt aber nicht :). Was is auswählen soll.
"verbose, debug, info, warn, error,oder assert"

Activity_main.xml

Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    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=".MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="144dp"
        android:text="@string/Button" 
        android:onClick="Button"/>
</RelativeLayout>
strings.xml

Code:
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Button</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="Button">Klick mich!</string>
    <string name="zweiteseite">Guten Tag!</string>

</resources>
zweiteseite.xml

Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="@string/zweiteseite"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>
Ich hoffe das ist die richtig LOG

HTML:
03-10 15:57:34.577: E/AndroidRuntime(1466): FATAL EXCEPTION: main
03-10 15:57:34.577: E/AndroidRuntime(1466): Process: com.example.button, PID: 1466
03-10 15:57:34.577: E/AndroidRuntime(1466): java.lang.IllegalStateException: Could not find a method Button(View) in the activity class com.example.button.MainActivity for onClick handler on view class android.widget.Button with id 'button1'
03-10 15:57:34.577: E/AndroidRuntime(1466):     at android.view.View$1.onClick(View.java:3810)
03-10 15:57:34.577: E/AndroidRuntime(1466):     at android.view.View.performClick(View.java:4438)
03-10 15:57:34.577: E/AndroidRuntime(1466):     at android.view.View$PerformClick.run(View.java:18422)
03-10 15:57:34.577: E/AndroidRuntime(1466):     at android.os.Handler.handleCallback(Handler.java:733)
03-10 15:57:34.577: E/AndroidRuntime(1466):     at android.os.Handler.dispatchMessage(Handler.java:95)
03-10 15:57:34.577: E/AndroidRuntime(1466):     at android.os.Looper.loop(Looper.java:136)
03-10 15:57:34.577: E/AndroidRuntime(1466):     at android.app.ActivityThread.main(ActivityThread.java:5017)
03-10 15:57:34.577: E/AndroidRuntime(1466):     at java.lang.reflect.Method.invokeNative(Native Method)
03-10 15:57:34.577: E/AndroidRuntime(1466):     at java.lang.reflect.Method.invoke(Method.java:515)
03-10 15:57:34.577: E/AndroidRuntime(1466):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-10 15:57:34.577: E/AndroidRuntime(1466):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-10 15:57:34.577: E/AndroidRuntime(1466):     at dalvik.system.NativeStart.main(Native Method)
03-10 15:57:34.577: E/AndroidRuntime(1466): Caused by: java.lang.NoSuchMethodException: Button [class android.view.View]
03-10 15:57:34.577: E/AndroidRuntime(1466):     at java.lang.Class.getConstructorOrMethod(Class.java:472)
03-10 15:57:34.577: E/AndroidRuntime(1466):     at java.lang.Class.getMethod(Class.java:857)
03-10 15:57:34.577: E/AndroidRuntime(1466):     at android.view.View$1.onClick(View.java:3803)
03-10 15:57:34.577: E/AndroidRuntime(1466):     ... 11 more
 
Zuletzt bearbeitet:
ok eine genaue Fehlerbeschreibung findest du in Zeile 3 deines LogCats ;) Geantwortet hab ich nicht auf die Frage, weil es gar keine Rolle spielt, das ist nur ein Filter der dir die wichtigen LogCat-Ausgaben usw anzeigt.
Pack doch am besten die MainActivity rein, wenn deine App abstürzt liegt es seltenst an der xml
 
ok. Meine MainAcitivity sieht so aus

HTML:
package com.example.button;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void button(View view) {
        setContentView(R.layout.activity_main);
    }
}
 
gut, du hast zwar eine methode "button" erstellt, aber keinen onClick listener. vielleicht wäre es sinnvoll wenn du dir zunächst ein Hello-World-Tutorial anschaust, weil SO kann dein code schonmal nicht funktionieren ;) ich könnte dir jetzt auch sagen was du genau machen musst aber da hätte keiner was von, versuchs einfach mal selbst rauszufinden :) Notfalls Copy & Paste und dann versuchen nachzuvollziehen. wenns hakt, einfach fragen
 
  • Danke
Reaktionen: N3cron
Ok. Vielen dank. Ich werde es mir morgen in ruhe anschauen. Ich krieg dat schon hin :) .Sach ich ma so janz locker. Melde mich wieder.....
 
ok kein ding, und gutes gelingen :D
 
keinbrain hat einfach eine kleinigkeit in deinem XML übersehen ;)

Code:
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="144dp"
        android:text="@string/Button" 
        [B]android:onClick="Button"[/B]/>

Du nennst deine onClick-Methode Button (mit grossem B) aber im Code nennst du sie button (mit kleinem B). Dadurch wird die Methode nicht gefunden, was sich auch mit der Fehlermeldung deckt:

java.lang.IllegalStateException: Could not find a method Button(View) in the activity class
 
Da hat Zoopa jetzt nicht ganz unrecht :biggrin: dennoch steht in der Methode button nichts drinnen, was sinnvoll erscheint, oder? :p

(Beim Klick wird die bereits angezeigte activity_main.xml angezeigt)
 
OnClickListener braucht er doch gar nicht, wenn er das per XML definiert.
Das Problem dürfte eher im Unterschiedn zwischen "button" und "Button" liegen. ;)
 
ja OnClick braucht er nicht, aber er muss setContentView in der Methode button zu zweiteseite.xml ändern wenn er will das was passiert ;)
 
Ich sehe gerade, dass meine Antwort auch etwas spät kam, hab die 2. seite übersehen wo genau das schon geschrieben wurde.

Sorry ;)
 
Hallo Jungs. Vielen Dank das ihr weiterhin noch was dazu geschrieben habt. Sorry das ich jetzt erst antworte. Hab im moment viel zun tun und komme kaum zu lernen von Java. Ich werde wohl morgen erst dazu kommen. Werde aber berichten ... Danke

Der ursprüngliche Beitrag von 21:29 Uhr wurde um 21:44 Uhr ergänzt:

Es ist eigentlich schon zu spät für mich aber ich konnte es nicht lassen. Hab mich nochmal vor Eclipse gesetzt, und siehe da. Nach ein paar min. kam auch bei mir die Lösung an. Es hat geklappt. Vielen Dank!!

Ne Frage haette ich noch bezüglich Eclipse und Java. Wie habt ihr angefangen? Oder ist es euer Beruf?

Ich habe zwar schon einiges gelesen, aber nach "Hallo World" wird immer direkt mit "geben sie folgenden code ein.... nun haben wir unser ersten app erstellt" erklaeren aber wenig zu " was sagen die Befehle aus"

Wie sollte ich weiter machen um möglichst effektiv zu lernen.

Möchte jetzt kein As darin werden, aber es soll mir spass machen etwas weiter zu kommen. Was mir durch das lesen etwas genommen wurde.

Danke für Tips und Tricks :)
 
Also ich mach das beruflich.
Hab aber früher angefangen zu programmieren, auch mit tutorials etc.

Aber meiner Meinung nach am besten funktioniert du überlegst dir eine App die du haben willst (kanns natürlich auch schon geben).
Im Laufe der Entwicklung wirst du halt immer auf Probleme treffen die du dann lösen kannst und so lernst du was.

Wichtig wäre noch wenn dein Englisch ganz gut wär, dann kannst du nämlich viel besser in der Android API suchen und lesen.
Ansonsten such nach Tutorials die weder Java noch Android umfassen sondern Objektorientierte Programmierung im Allgemeinen.
Das ist nämlich viel wichtiger zu verstehen als Java an sich zu lernen.
 
  • Danke
Reaktionen: N3cron
Du wirst , wenn du immer mal was programmierst, immer mehr verstehen, was das eigentlich für befehle usw. sind, das kommt mit der zeit. Zum Java lernen kannst du dir mal die Videos von Brotcrunsher angucken, dass hat mir sehr beim Einstieg in die Programmierung geholfen
 
  • Danke
Reaktionen: N3cron
Vielen vielen Dank! Ganz top wie ihr mich hier unterstützt. Jetzt werde ich erst einmal weiter lernen. Werde mich hier aber bestimmt mal wieder melden.

Weiter so!
 

Ähnliche Themen

A
  • AnimaAngelo85
Antworten
1
Aufrufe
337
swa00
swa00
MES
Antworten
10
Aufrufe
820
MES
MES
M
  • MikelKatzengreis
Antworten
10
Aufrufe
226
swa00
swa00
Zurück
Oben Unten