App crashes after implementing OnClickListener

  • Antworten:10
  • Bentwortet
Can K.
  • Forum-Beiträge: 5

21.07.2015, 13:06:29 via Website

Hey, I am totally confused, I wanted to create a new App and set the OnClickListener for starting the next Activity, before I've done this my App worked. It started the Main Activity, showed everything.
Now If I'm trying to run my App I get spammed with several Messages in the logcat and it don't stop until I unplug my Phone and the App doesn't even start. There comes only a message ''Royal Trainer wurde angehalten" (Royal Trainer was stopped).

I checked my code, it isn't long yet, so I thought I can find the mistake easyily but I can't find it.

I'll post my MainActivity.java

package royalarmyorg.de.royalquiz;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageButton;

public class MainActivity extends Activity {

ImageButton StartButton = (ImageButton) findViewById(R.id.StartButton);

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

    StartButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, QuizActivity.class);
            startActivity(intent);
        }
    });

}

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
} }

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.960

21.07.2015, 13:59:33 via Website

Hallo Can Kröger,

herzlich willkommen hier im Forum (*)

Du kannst gerne mit uns deutsch sprechen ;-)

ImageButton StartButton = (ImageButton) findViewById(R.id.StartButton);

Da liegt der Fehler denn du suchste den Button bevor du das layout geladen hast.

StartButton = (ImageButton) findViewById(R.id.StartButton);

Der Teil muss nach setcontentview initialisiert werden.

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Can K.

Antworten
Can K.
  • Forum-Beiträge: 5

21.07.2015, 14:03:18 via Website

Dämliche Frage meinerseits, vergesse sehr gerne sehr viel, wie mache ich das nochmal? :D

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.960

21.07.2015, 14:10:20 via Website

public class MainActivity extends Activity {

ImageButton StartButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StartButton = (ImageButton) findViewById(R.id.StartButton);
StartButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, QuizActivity.class);
startActivity(intent);
}
});
}

Den Rest vom code hab ich mal weg gelassen. Tut hier nix zu Fehlerbehebung.

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Can K.

Antworten
Can K.
  • Forum-Beiträge: 5

21.07.2015, 14:19:24 via Website

Vielen vielen Dank! :)

Noch eine kleine Frage..Wenn ich auf 'Run' drücke erscheint kein Fenster mehr, in welchem ich auswählen kann ob ich einen Emulator nutzen möchte oder mein Handy, es macht einfach nichts und das seit ich Android Support Library und Android Support Repository geupdated habe und, da ich ein AMD Prozessor habe, ARM EABI v7a System Image heruntergeladen habe um einen Emulator zu nutzen, wüssten Sie, wie ich wieder das Fenster zur Auswahl dazu bekomme?

Anmerkung : Ich bekomme dabei diese Meldungen

res\drawable\false.png:0: error: invalid symbol: 'false'
res\drawable\true.png:0: error: invalid symbol: 'true'
Error:Execution failed for task ':app:processDebugResources'.com.android.ide.common.process.ProcessException:
org.gradle.process.internal.ExecException: Process 'command
'C:\Users\user\AppData\Local\Android\sdk\build-tools\22.0.1\aapt.exe'' finished with non-zero exit value 1

Und ich bekomme nun die Fehlermeldung, dass das 'R' bei (R.id.[...]) nicht mehr erkannt wird, wie kann ich das beheben?

Entschuldigen Sie die vielen Fragen, ich habe keine sonderlich große Ahnung, zumindestens noch nicht, da ich erst vor 3 Tagen mit Android anfing (zuvor nur mit Java programmiert)

— geändert am 21.07.2015, 14:27:18

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.960

21.07.2015, 14:29:49 via App

Das mit run kann ich dir nicht sagen da ich wenn nur debbuing wähle.

Und ich bekomme nun die Fehlermeldung, dass das 'R' bei (R.id.[...]) nicht mehr erkannt wird, wie kann ich das beheben?

Hast du den Button überhaupt im Layout?

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten
Can K.
  • Forum-Beiträge: 5

21.07.2015, 14:33:13 via Website

Ja, vor dem Update hat das ja auch funktioniert und wurde erkannt, aber nun, überall wo ich (R.id.[...]); habe wird das R rot markiert und mir wird angezeigt ''Cannot resolve 'R'"

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.960

21.07.2015, 15:06:56 via Website

res\drawable\false.png:0: error: invalid symbol: 'false'
res\drawable\true.png:0: error: invalid symbol: 'true'

Hier liegt der Hund begraben true und false sind feste vom System interpretiert du darfst sie nicht als Datei Namen bzw. Auch nicht als variablen Namen verwenden.

Ändere die Namen clean dein Projekt und rebuilde es.

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Can K.

Antworten
Can K.
  • Forum-Beiträge: 5

21.07.2015, 15:13:03 via Website

Vielen dank, Sie haben mir sehr geholfen! :)

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.960

21.07.2015, 15:22:11 via App

Hallo Can K.,

wir sind hier im Forum nicht so förmlich und nutzen "Du" statt "Sie" ;-)

Bitte setze deinen Thread noch auf Beantwortet, indem du im Browser über deinem ersten Post auf "Mehr"->"Beantworten" klickst.

Oder in der App im Thread auf das Optionsmenü -> "Beantwortet setzen".

Danke (smug)

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Can K.

Antworten
Sven R.
  • Forum-Beiträge: 1.904

21.07.2015, 16:43:03 via App

Das mit dem Run: Oben neben dem Run Button siehst du eine Dropdownliste, meistens schon mit dem aktivem Eintrag "app". Du öffnest die Liste und klickst auf "Edit Configuration" oder so. Dann im sich neu geiffnetem Fenster runterscrollen zur Run Kategorie und dort die passende Checkbox klicken.

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Can K.

Antworten