App probleme bei einigen Smartphones

  • Antworten:37
  • Bentwortet
Meister
  • 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.

Kommentieren
Beste Antwort
Ludy
  • Admin
  • Forum-Beiträge: 7.957

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.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Hilfreich?
Meister
Kommentieren
Meister
  • 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?
Kommentieren
Ludy
  • Admin
  • Forum-Beiträge: 7.957

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.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Hilfreich?
Meister
Kommentieren
Meister
  • Forum-Beiträge: 55

01.11.2018, 23:13:49 via Website

image

so in der PlayConsole 👍

Hilfreich?
Kommentieren
Ludy
  • Admin
  • Forum-Beiträge: 7.957

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.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Hilfreich?
Meister
Kommentieren
Meister
  • Forum-Beiträge: 55

01.11.2018, 23:20:42 via Website

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

Hilfreich?
Kommentieren
Ludy
  • Admin
  • Forum-Beiträge: 7.957

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.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Hilfreich?
Meister
Kommentieren
Meister
  • 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?
Kommentieren
Ludy
  • Admin
  • Forum-Beiträge: 7.957

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.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Hilfreich?
Meister
Kommentieren
Meister
  • 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?
Kommentieren
Meister
  • Forum-Beiträge: 55

01.11.2018, 23:48:02 via Website

aaaach, da fehlt break 😂👍

Hilfreich?
Kommentieren
Ludy
  • Admin
  • Forum-Beiträge: 7.957

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.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Hilfreich?
Meister
Kommentieren
Meister
  • 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?
Kommentieren
Meister
  • 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?
Kommentieren
Ludy
  • Admin
  • Forum-Beiträge: 7.957

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.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Hilfreich?
Meister
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

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?
Meister
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

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?
Meister
Kommentieren
Ludy
  • Admin
  • Forum-Beiträge: 7.957

02.11.2018, 09:47:06 via Website

Jokel, ich entwickel Apps nicht seit Gestern ;-)

Es gibt Mittel, die dir das ermöglichen - mehr kann ich hier nicht schreiben (das Internet ist keine Grau-Zone(laughing))

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📲

Hilfreich?
Meister
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

02.11.2018, 09:51:28 via Website

Ja durch dekompilieren einer apk die Arbeit habe ich mir gespart. Ha ha.
das ist nichts neues. wurde schon immer im computerwesen gemacht.
notfals dann in assebler.

— geändert am 02.11.2018, 09:54:54

Hilfreich?
Meister
Kommentieren
Meister
  • Forum-Beiträge: 55

02.11.2018, 10:17:55 via Website

png dateien, also aus Vektoren habe ich png erstellt mit illustrator. Wusste nicht, dass man auch vektoren nehmen kann.
ich schau mir mal btnleu gleich an

Hilfreich?
Kommentieren
Meister
  • Forum-Beiträge: 55

02.11.2018, 10:18:58 via Website

und @ludy hier werden die Code so komisch angezeigt am handy. Werde mir das gleich am lappy ansehen 😋

Hilfreich?
Kommentieren
Meister
  • Forum-Beiträge: 55

02.11.2018, 10:23:07 via Website

@jokel
Also btnleu ist die erste Veränderung. Also beim Start der Activity sollten die drei unteren und der große Button rot erscheinen. Btn leu soll eine Art leuchten darstellen mit einem Gelben Verlauf von in nach außen. Also genau der selbe Button aber mit einem Verlauf. Das würde bedeuten, dass sobald eine Veränderung getätigt wird, die App abstürzt. Also bei dieser Variante der Abstürze. Es gibt ja auch noch die variante an Abstürzen, dass die App direkt beim Start abstürzt

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

02.11.2018, 10:25:40 via Website

wird wohl doch an dem runOnUiThread ligen .

— geändert am 02.11.2018, 10:29:50

Hilfreich?
Meister
Kommentieren
Meister
  • Forum-Beiträge: 55

02.11.2018, 10:28:34 via Website

@ludy
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?
Und bei der Änderung unten, würde das den Fehler beheben? Das mit dem UI und was genau macht das denn? bzw. was war denn der Fehler?

Hilfreich?
Kommentieren
Meister
  • Forum-Beiträge: 55

02.11.2018, 10:32:49 via Website

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

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

02.11.2018, 10:37:59 via Website

setze mal vor das erste Run auch das @Override

https://v4all123.blogspot.com/2013/01/timer.html

denn du überschreibst ja von beiden klassen die run methode.

— geändert am 02.11.2018, 10:45:43

Hilfreich?
Meister
Kommentieren
Meister
  • Forum-Beiträge: 55

02.11.2018, 10:41:46 via Website

jut, ich schau mal ob es daran gelegen hat. Meine tester warten schon ^^

Hilfreich?
Kommentieren
Beste Antwort
Ludy
  • Admin
  • Forum-Beiträge: 7.957

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.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Hilfreich?
Meister
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

02.11.2018, 10:51:21 via Website

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

genau deshalb auch zwei mal @override

Hilfreich?
Meister
Kommentieren
Meister
  • Forum-Beiträge: 55

02.11.2018, 11:10:00 via Website

klappt nun, falls sich erneut jemand wegen Abstürzen meldet und ich nicht durchblicke, melde ich mich. Danke euch :P

Hilfreich?
Jokel
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

02.11.2018, 15:09:26 via Website

Hallo was ich bei deinem Spiel nicht so toll finede, ist das der Sound wenn ich zum Homescreen gehe weiter läuft. Also wenn die App in den Hintergrund geht, und nicht den Fokus hat.

Hilfreich?
Kommentieren
Meister
  • Forum-Beiträge: 55

02.11.2018, 22:20:59 via Website

Wie kann ich das abstellen? Hast du eine Idee?
Außerdem gibt es noch ein Problem mit den Punkten, deswegen erstelle ich aber gleich einen Thread, fall sich nichts finde im Internet.

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

02.11.2018, 22:31:22 via Website

Da frage am besten Ludy der hat sich die app durch rückübersetzen nachgebaut.

Zu dem Thema mit dem Sound würde ich sagen das du den task thread in dem du den Sound abspielst in der in onpause beendest.

— geändert am 03.11.2018, 13:40:18

Hilfreich?
MeisterLudy
Kommentieren
Ludy
  • Admin
  • Forum-Beiträge: 7.957

02.11.2018, 22:37:33 via App

Jokel

Zu dem Thema mit dem Sound würde ich sagen das du den task thread in dem du den Sound abspielst in der in onpause beendest.

dem ist nichts hinzuzufügen 😉

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📲

Hilfreich?
Meister
Kommentieren