App probleme bei einigen Smartphones

  • Antworten:37
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 55

01.11.2018, 22:33:37 via Website

Ich habe ein simples Spiel programmiert, welches bei geschätzt 50% der Android Geräte beim Start abstürzt und bei einigen erst bei der zweiten Activity.
Die App ist ziemlich simpel, ich verstehe nicht, wo das Problem liegen könnte. habe sie auch bereits in den Playstore geladen.

Hier die erste Activity

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

xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/clashofpistart"
tools:context=".Menue">

<Button
    android:id="@+id/btnGo"
    style="@android:style/Widget.Button"
    android:layout_width="295dp"
    android:layout_height="93dp"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginBottom="8dp"
    android:background="@drawable/buttton"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.506"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.55" />

<Button
    android:id="@+id/btnScore"
    android:layout_width="100dp"
    android:layout_height="93dp"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginBottom="8dp"
    android:background="@drawable/btnleu"
    android:text="SCORE"
    android:textColor="@android:color/black"
    android:textSize="24sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.91"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.043" />

und nun die Java Klasse

package de.apppuls.bilal.clashofpi;

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

public class Menue extends AppCompatActivity implements View.OnClickListener {

Button btnGo;
Button btnScore;





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

    btnGo = (Button) findViewById(R.id.btnGo);
    btnGo.setOnClickListener(this);
    btnScore = (Button) findViewById(R.id.btnScore);
    btnScore.setOnClickListener(this);


}

@Override
public void onClick(View view) {

    switch (view.getId()) {

        case R.id.btnGo:
            Intent intent = new Intent(this, Spiel.class);
            startActivity(intent);
            this.finish();
            break;
        case R.id.btnScore:
            Intent iZwei = new Intent(this, Ende.class);
            startActivity(iZwei);
            this.finish();
            break;
    }



}

}

Die Samsung galaxy s Reihe hat große Probleme mit dem Spiel.

Diskutiere mit!
Beste Antwort
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

02.11.2018, 10:43:55 via Website

wieso hast du da zweimal public void run ()?
Hast vergessen das erste zu löschen?

nein, das Erste ist von new Timer().schedule(new TimerTask() und das zweite runOnUiThread(new Runnable()

Also bei den Cases, da hast du ja die Cases leer gelassen, würde das nicht heißen, dass bei Veränderung, also beim "leuchten", diese bei einem nächsten leeren case dann nicht wieder zurückgesetzt werden würden? Also, dass die dann durchgehen Leuchten?

Ich habe 1. nur die #Case zusammengefasst, die das gleiche machen (Ressourcen sparen) und 2. nein sie werden so funktionieren - habe die App nachgebaut und da ging es.
3. (!) bitte nicht von mir kopieren, das kann zu Problemen der IDs führen

Gruß Ludy (App Entwickler)

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

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 55

01.11.2018, 22:54:27 via Website

Welchen Fehlerbericht meinst du denn? Wie erhalte ich den? Ich habe kein Snartphone da, bei dem die Apo abstürzt und bei dem Emulatoren funktioniert es auch.

Hilfreich?
Diskutiere mit!
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

01.11.2018, 23:05:44 via App

Meister

Welchen Fehlerbericht meinst du denn? Wie erhalte ich den?

Ähm, woher weißt du das sie abstürzt?

Wenn du kein Samsung hast, kannst hier den Link zur App reinsetzen - vielleicht hat hier jemand eins 😉

Gruß Ludy (App Entwickler)

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

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Hilfreich?
Diskutiere mit!
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

01.11.2018, 23:17:44 via Website

Dann hast du alles was du brauchst zum beheben;-)

Und hier vom Handy

2018-11-01 23:16:15.316 2596-3277/? I/ActivityManager: START u0 {cmp=de.apppuls.bilal.clashofpi/.Spiel} from uid 10333 on display 0
2018-11-01 23:16:15.471 2596-2742/? I/LaunchCheckinHandler: Displayed de.apppuls.bilal.clashofpi/.Spiel,wp,ca,142
2018-11-01 23:16:15.472 2596-2742/? I/ActivityManager: Displayed de.apppuls.bilal.clashofpi/.Spiel: +142ms
2018-11-01 23:16:15.663 2596-11827/? I/WindowManager: Destroying surface Surface(name=de.apppuls.bilal.clashofpi/de.apppuls.bilal.clashofpi.Menue) called by com.android.server.wm.WindowStateAnimator.destroySurface:2069 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:897 com.android.server.wm.WindowState.removeLocked:1464 com.android.server.wm.WindowManagerService.removeWindowInnerLocked:2552 com.android.server.wm.WindowManagerService.removeWindowLocked:2510 com.android.server.wm.WindowManagerService.removeWindowLocked:2379 com.android.server.wm.WindowManagerService.removeWindow:2370 com.android.server.wm.Session.remove:202 

    --------- beginning of crash
2018-11-01 23:16:15.992 14709-14762/? E/AndroidRuntime: FATAL EXCEPTION: Timer-0
    Process: de.apppuls.bilal.clashofpi, PID: 14709
    android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
        at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6902)
        at android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:1087)
        at android.view.ViewGroup.invalidateChild(ViewGroup.java:5246)
        at android.view.View.invalidateInternal(View.java:13576)
        at android.view.View.invalidate(View.java:13512)
        at android.view.View.invalidateDrawable(View.java:17696)
        at android.widget.TextView.invalidateDrawable(TextView.java:5582)
        at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:432)
        at android.graphics.drawable.Drawable.setVisible(Drawable.java:816)
        at android.view.View.setBackgroundDrawable(View.java:18163)
        at android.support.v7.widget.AppCompatButton.setBackgroundDrawable(AppCompatButton.java:90)
        at android.view.View.setBackground(View.java:18139)
        at android.view.View.setBackgroundResource(View.java:18122)
        at android.support.v7.widget.AppCompatButton.setBackgroundResource(AppCompatButton.java:82)
        at de.apppuls.bilal.clashofpi.Spiel.piLaden(Spiel.java:144)
        at de.apppuls.bilal.clashofpi.Spiel.access$000(Spiel.java:16)
        at de.apppuls.bilal.clashofpi.Spiel$1.run(Spiel.java:57)
        at java.util.TimerThread.mainLoop(Timer.java:555)
        at java.util.TimerThread.run(Timer.java:505)
2018-11-01 23:16:15.993 2596-11764/? W/ActivityManager:   Force finishing activity de.apppuls.bilal.clashofpi/.Spiel
2018-11-01 23:16:15.997 2596-11764/? W/ActivityManager:   Force finishing activity de.apppuls.bilal.clashofpi/.Spiel
2018-11-01 23:16:15.997 2596-11764/? W/ActivityManager: Duplicate finish request for ActivityRecord{ccf125 u0 de.apppuls.bilal.clashofpi/.Spiel t78639 f}
2018-11-01 23:16:16.544 2596-20070/? I/WindowManager: Destroying surface Surface(name=de.apppuls.bilal.clashofpi/de.apppuls.bilal.clashofpi.Spiel) called by com.android.server.wm.WindowStateAnimator.destroySurface:2069 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:897 com.android.server.wm.WindowState.removeLocked:1464 com.android.server.wm.WindowManagerService.removeWindowInnerLocked:2552 com.android.server.wm.WindowManagerService.removeWindowLocked:2510 com.android.server.wm.WindowManagerService.removeWindowLocked:2379 com.android.server.wm.WindowManagerService.removeWindow:2370 com.android.server.wm.Session.remove:202 
2018-11-01 23:16:18.116 588-588/? D/SFPerfTracer:        layers: (6:12) (StatusBar (0xa8a12400): 0:130371) (com.android.systemui.ImageWallpaper (0xa8c0c000): 0:55357)* (DimLayerController/Stack=0 (0xa8a14c00): 0:2667) (animation background stackId=1 (0xa8c0d400): 0:782)* ( (0xa88c5c00): 0:54882) (Sprite (0xa8a11000): 0:406)* (animation background stackId=0 (0xa88f5800): 0:18)* (NavigationBar (0xa8a13800): 0:212) (de.apppuls.bilal.clashofpi/de.apppuls.bilal.clashofpi.Menue (0xa88f6c00): 0:37)- (de.apppuls.bilal.clashofpi/de.apppuls.bilal.clashofpi.Spiel (0xa88f3000): 0:49)- (Application Error: de.apppuls.bilal.clashofpi (0xa88f6c00): 0:31) (com.android.vending/com.android.vending.AssetBrowserActivity (0xa88f4400): 0:30) 

Gruß Ludy (App Entwickler)

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

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 55

01.11.2018, 23:20:42 via Website

Verstehe nur Bahnhof 😂👍
Wo kann ich ansetzen? 😂🤷‍♂️

Hilfreich?
Diskutiere mit!
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

01.11.2018, 23:22:29 via App

LogCat anschauen und verstehen

hier sollte der Fehler sein:

de.apppuls.bilal.clashofpi.Spiel.piLaden(Spiel.java:144)

Wenn du die Datei nicht schon verändert haben solltest.

Gruß Ludy (App Entwickler)

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

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 55

01.11.2018, 23:27:03 via Website

ok, das ist heftig. Dann hat das ja ncihts mit der ersten Activity zu tun, sondern mit der piLaden Methode von der zweiten Java Klasse.

private void piLaden(){



    int zufallszahl = (int) (Math.random() * (4-1) +1);
    int zufall = (int) (Math.random() * (10-1) +1);

    switch (zufallszahl){
        case 1:
            btnEins.setBackgroundResource(R.drawable.btnleu);
            switch (zufall){
                case 1:
                    btnZwei.setBackgroundResource(R.drawable.falsebutton);
                    btnDrei.setBackgroundResource(R.drawable.pibutton);
                case 2:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnDrei.setBackgroundResource(R.drawable.falsebutton);
                case 3:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnDrei.setBackgroundResource(R.drawable.pibutton);
                case 4:
                    btnZwei.setBackgroundResource(R.drawable.falsebutton);
                    btnDrei.setBackgroundResource(R.drawable.pibutton);
                case 5:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnDrei.setBackgroundResource(R.drawable.falsebutton);
                case 6:
                    btnZwei.setBackgroundResource(R.drawable.falsebutton);
                    btnDrei.setBackgroundResource(R.drawable.falsebutton);
                case 7:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnDrei.setBackgroundResource(R.drawable.pibutton);
                case 8:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnDrei.setBackgroundResource(R.drawable.pibutton);
                case 9:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnDrei.setBackgroundResource(R.drawable.pibutton);
            }
            a=true; b=false; c=false;
            break;
        case 2:
            btnZwei.setBackgroundResource(R.drawable.btnleu);
            switch (zufall){
                case 1:
                    btnEins.setBackgroundResource(R.drawable.falsebutton);
                    btnDrei.setBackgroundResource(R.drawable.pibutton);
                case 2:
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                    btnDrei.setBackgroundResource(R.drawable.falsebutton);
                case 3:
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                    btnDrei.setBackgroundResource(R.drawable.pibutton);
                case 4:
                    btnEins.setBackgroundResource(R.drawable.falsebutton);
                    btnDrei.setBackgroundResource(R.drawable.pibutton);
                case 5:
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                    btnDrei.setBackgroundResource(R.drawable.falsebutton);
                case 6:
                    btnEins.setBackgroundResource(R.drawable.falsebutton);
                    btnDrei.setBackgroundResource(R.drawable.falsebutton);
                case 7:
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                    btnDrei.setBackgroundResource(R.drawable.pibutton);
                case 8:
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                    btnDrei.setBackgroundResource(R.drawable.pibutton);
                case 9:
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                    btnDrei.setBackgroundResource(R.drawable.pibutton);
            }
            a=false; b=true; c=false;
            break;
        case 3:
            btnDrei.setBackgroundResource(R.drawable.btnleu);
            switch (zufall){
                case 1:
                    btnZwei.setBackgroundResource(R.drawable.falsebutton);
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                case 2:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnEins.setBackgroundResource(R.drawable.falsebutton);
                case 3:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                case 4:
                    btnZwei.setBackgroundResource(R.drawable.falsebutton);
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                case 5:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnEins.setBackgroundResource(R.drawable.falsebutton);
                case 6:
                    btnZwei.setBackgroundResource(R.drawable.falsebutton);
                    btnEins.setBackgroundResource(R.drawable.falsebutton);
                case 7:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                case 8:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                case 9:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnEins.setBackgroundResource(R.drawable.pibutton);
            }
            a=false; b=false; c=true;
            break;




    }

Verstehe nicht, was in dieser Methode den Fehler aufrufen könnte.
Ich weiß, ist bisschen unnötig viel code aber bin ein Neuling, programmiere erst seit einigen Wochen für Android ^^

Hilfreich?
Diskutiere mit!
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

01.11.2018, 23:31:20 via App

Zeile 144 ist die interessante Zeile 😎

und deine case werden alle aufgerufen, ist nicht Sinn der Sache

— geändert am 01.11.2018, 23:32:21

Gruß Ludy (App Entwickler)

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

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 55

01.11.2018, 23:37:48 via Website

Case 3 wäre das. Also der Anfang von Case3.
Verstehe nicht, was ich da falsch mache. Ist doch alles richtig so wie in den Fällen davor.

case 3:
            btnDrei.setBackgroundResource(R.drawable.btnleu);  <------144
            switch (zufall){
                case 1:
                    btnZwei.setBackgroundResource(R.drawable.falsebutton);
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                case 2:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnEins.setBackgroundResource(R.drawable.falsebutton);
                case 3:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                case 4:
                    btnZwei.setBackgroundResource(R.drawable.falsebutton);
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                case 5:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnEins.setBackgroundResource(R.drawable.falsebutton);
                case 6:
                    btnZwei.setBackgroundResource(R.drawable.falsebutton);
                    btnEins.setBackgroundResource(R.drawable.falsebutton);
                case 7:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                case 8:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnEins.setBackgroundResource(R.drawable.pibutton);
                case 9:
                    btnZwei.setBackgroundResource(R.drawable.pibutton);
                    btnEins.setBackgroundResource(R.drawable.pibutton);
            }
            a=false; b=false; c=true;
            break;




    }

wo verhäddert sich da etwas? Was übersehe ich? Und wieso klappt das bei einigen Smartphones, bei anderen aber nicht?

Hilfreich?
Diskutiere mit!
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

01.11.2018, 23:50:11 via App

Meister

Und wieso klappt das bei einigen Smartphones, bei anderen aber nicht?

Das ist ganz einfach, weil sich nicht alle Hersteller an den Standard von Google halten.

Wegen deinem Fehler - das muss ich mir ausgeschlafen anschauen.
Ich tippe mal das du ein darauf, dass du die Instanz der ui benötigst, weil du im Layout Veränderungen vornimmst, die gegen den Standard verstoßen.

— geändert am 01.11.2018, 23:50:27

Gruß Ludy (App Entwickler)

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

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 55

01.11.2018, 23:55:33 via Website

jut, ich schau mal weiter rein, und melde mich falls ich am verzweifeln bin 😂👍

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 55

02.11.2018, 00:07:23 via Website

Also an den Breaks hat es nicht gelegen.
Die Apo stürzt immer noch ab aber war eh klar 😂

Und bei der LasOut Veränderung da verstehe ich nicht, wo das Problem liegt. 😵

Hilfreich?
Diskutiere mit!
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

02.11.2018, 09:18:52 via Website

Hier deine Klasse, nicht wundern habe alles etwas verkürzt aber nicht optimiert - bitte kein Copy&Paste verwenden(!)

package de.apppuls.bilal.clashofpi;

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

import java.util.Timer;
import java.util.TimerTask;

public class Spiel
        extends AppCompatActivity
        implements View.OnClickListener {

    private boolean a;
    private boolean b;
    private Button btnDrei;
    private Button btnEins;
    private Button btnSumme;
    private Button btnZwei;
    private boolean c;
    private boolean d;
    private MediaPlayer mp;
    private int punkte = 0;
    private int punkteSp = 0;
    private TextView tvPunkte;
    private TextView tvPunkteSp;
    private int zahla = 1;

    private void piLaden() {
        int zufallszahl = (int) (1.0D + 3.0D * Math.random());
        int zufall = (int) (1.0D + 9.0D * Math.random());

        btnDrei.setBackgroundResource(R.drawable.btnleu);
        switch (zufallszahl) {
            default:
                break;
            case 3:
                switch (zufall) {
                    case 1:
                    case 4:
                        btnZwei.setBackgroundResource(R.drawable.falsebutton);
                        btnEins.setBackgroundResource(R.drawable.pibutton);
                        break;
                    case 2:
                    case 5:

                        btnZwei.setBackgroundResource(R.drawable.pibutton);
                        btnEins.setBackgroundResource(R.drawable.falsebutton);
                        break;
                    case 6:
                        btnZwei.setBackgroundResource(R.drawable.falsebutton);
                        btnEins.setBackgroundResource(R.drawable.falsebutton);
                        break;
                    case 7:
                    case 8:
                    case 3:
                    case 9:
                        btnZwei.setBackgroundResource(R.drawable.pibutton);
                        btnEins.setBackgroundResource(R.drawable.pibutton);
                        break;
                }
                a = false;
                b = false;
                c = true;
                break;
            case 2:
                switch (zufall) {
                    default:
                        break;
                    case 1:
                    case 4:
                        btnEins.setBackgroundResource(R.drawable.falsebutton);
                        btnDrei.setBackgroundResource(R.drawable.pibutton);
                        break;
                    case 2:
                    case 5:
                        btnEins.setBackgroundResource(R.drawable.pibutton);
                        btnDrei.setBackgroundResource(R.drawable.falsebutton);
                        break;
                    case 6:
                        btnEins.setBackgroundResource(R.drawable.falsebutton);
                        btnDrei.setBackgroundResource(R.drawable.falsebutton);
                        break;
                    case 7:
                    case 8:
                    case 9:
                    case 3:
                        btnEins.setBackgroundResource(R.drawable.pibutton);
                        btnDrei.setBackgroundResource(R.drawable.pibutton);
                        break;
                }
                a = false;
                b = true;
                c = false;
                break;
            case 1:
                switch (zufall) {
                    default:
                        break;
                    case 1:
                    case 4:
                        btnEins.setBackgroundResource(R.drawable.falsebutton);
                        btnDrei.setBackgroundResource(R.drawable.pibutton);
                        break;
                    case 2:
                    case 5:
                        btnEins.setBackgroundResource(R.drawable.pibutton);
                        btnDrei.setBackgroundResource(R.drawable.falsebutton);
                        break;
                    case 6:
                        btnEins.setBackgroundResource(R.drawable.falsebutton);
                        btnDrei.setBackgroundResource(R.drawable.falsebutton);
                    case 3:
                    case 7:
                    case 8:
                    case 9:
                        btnEins.setBackgroundResource(R.drawable.pibutton);
                        btnDrei.setBackgroundResource(R.drawable.pibutton);
                        break;
                }
                a = true;
                b = false;
                c = false;
        }
        switch (zufall) {
            default:
                break;
            case 9:
                btnSumme.setBackgroundResource(R.drawable.falsebutton);
                d = false;
                break;
            case 8:
            case 7:
            case 6:
            case 5:
            case 4:
            case 3:
            case 2:
                btnSumme.setBackgroundResource(R.drawable.pibutton);
                d = false;
                break;
            case 1:
                btnSumme.setBackgroundResource(R.drawable.btnleu);
                d = true;
        }
        punkteSp -= 1;
        tvPunkteSp.setText(String.valueOf(punkteSp));
        tvPunkte.setText(String.valueOf(punkte));
        if (zahla > 2) {
            zahla /= 2;
        }
    }

    private void stopPlaying() {
        if (mp != null) {
            mp.stop();
            mp.release();
            mp = null;
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btnZwei:
                if (b) {
                    punkte += zahla;
                    zahla = (4 * zahla);
                    stopPlaying();
                    mp = MediaPlayer.create(this, R.raw.didng);
                    mp.start();
                } else {
                    punkte = 0;
                    zahla = 1;
                    stopPlaying();
                    mp = MediaPlayer.create(this, R.raw.argh);
                    mp.start();
                }
                TextView localTextView7 = tvPunkte;
                String localStringBuilder7 = "" +
                        punkte;
                localTextView7.setText(localStringBuilder7);
                break;
            case R.id.btnSumme:
                if (d) {
                    punkteSp += punkte;
                    punkte = 0;
                    tvPunkteSp.setText(String.valueOf(punkteSp));
                    tvPunkte.setText(String.valueOf(punkte));
                    stopPlaying();
                    mp = MediaPlayer.create(this, R.raw.didng);
                    mp.start();
                    return;
                }
                punkteSp -= punkte;
                punkte = 0;
                tvPunkteSp.setText(String.valueOf(punkteSp));
                tvPunkte.setText(String.valueOf(punkte));
                stopPlaying();
                mp = MediaPlayer.create(this, R.raw.falsch);
                mp.start();
                break;
            case R.id.btnSave:
                Intent localIntent = new Intent(this, Ende.class);
                localIntent.putExtra("Punkte", punkteSp);
                startActivity(localIntent);
                finish();
                break;
            case R.id.btnEins:
                if (a) {
                    punkte += zahla;
                    zahla = (4 * zahla);
                    stopPlaying();
                    mp = MediaPlayer.create(this, R.raw.didng);
                    mp.start();
                } else {
                    punkte = 0;
                    zahla = 1;
                    stopPlaying();
                    mp = MediaPlayer.create(this, R.raw.argh);
                    mp.start();
                }
                tvPunkte.setText(String.valueOf(punkte));
                return;
        }
        if (c) {
            punkte += zahla;
            zahla = (4 * zahla);
            stopPlaying();
            mp = MediaPlayer.create(this, R.raw.didng);
            mp.start();
        } else {
            punkte = 0;
            zahla = 1;
            stopPlaying();
            mp = MediaPlayer.create(this, R.raw.argh);
            mp.start();
        }
        tvPunkte.setText(String.valueOf(punkte));
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_spiel);
        tvPunkte = findViewById(R.id.tvPunkte);
        tvPunkteSp = findViewById(R.id.tvPunkteSp);
        btnEins = findViewById(R.id.btnEins);
        btnEins.setOnClickListener(this);
        btnZwei = findViewById(R.id.btnZwei);
        btnZwei.setOnClickListener(this);
        btnDrei = findViewById(R.id.btnDrei);
        btnDrei.setOnClickListener(this);
        btnSumme = findViewById(R.id.btnSumme);
        btnSumme.setOnClickListener(this);
        Button btnSave = findViewById(R.id.btnSave);
        btnSave.setOnClickListener(this);
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                runOnUiThread(new Runnable() {  // ÄNDERUNG
                    @Override                   // ÄNDERUNG
                    public void run() {         // ÄNDERUNG
                        piLaden();              // ÄNDERUNG
                    }                           // ÄNDERUNG
                });                             // ÄNDERUNG
            }
        }, 600L, 600L);
    }
}

— geändert am 02.11.2018, 10:44:36

Gruß Ludy (App Entwickler)

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

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 486

02.11.2018, 09:30:18 via Website

Hallo auser deinen Breaks sieht die Switch eigentlich gut aus .

Ich würde denken das eines deiner Drawable Resourcen den fehler verursacht .
Sind das Pixel oder vector Drawable?

btnDrei.setBackgroundResource(R.drawable.btnleu); <------144

da dies die zeile 144 sein soll würde ich erstmal das "btnleu" genauer betrachte oder duch ein anderes testweise ersetzen.

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 486

02.11.2018, 09:36:25 via Website

Hi @Ludy
Wo hast du den den Code der onCreate onClick ... her geholt der war ja gar nicht im Text?

Hilfreich?
Diskutiere mit!

Empfohlene Artikel