Multitouch-crash bei gleichzeitiger Berührung des Displays mit 2 Fingern

S

silverXXI

Neues Mitglied
0
Hallo Leute,

ich arbeite zum Zeitvertreib seit einiger Zeit an einem kleinen Spiel für Smartphones und bin jetzt an einem Punkt wo ich leider nicht mehr weiter weis. :unsure:

Bei mir ist das Problem, dass meine Spiel jedesmal anstürzt, wenn ich den Display des Smartphones mit mndestens zwei Fingern gleichzeitig berühre oder sehr schnell nach einander den Display berühre.

Mein onTouchEvent sieht so aus:

Code:
@Override
    public boolean onTouchEvent(MotionEvent event) {

        int maskedAction = event.getActionMasked();

        int pointerIndex = event.getActionIndex();

        switch (maskedAction) {

        case MotionEvent.ACTION_DOWN: {

            PointF b = new PointF();
            b.x = event.getX(pointerIndex);
            b.y = event.getY(pointerIndex);

            if (System.currentTimeMillis() - lastClick > 10) {
                lastClick = System.currentTimeMillis();

                if (!spriteHit) {
                    synchronized (getHolder()) {
                        for (int i = bonusAnimation.size() - 1; i >= 0; i--) {
                            Animation bonus = bonusAnimation.get(i);
                            if (bonus.isTouched(b.x, b.y)) {
                                score++;
                                playTime += 15000;
                                theGameActivity.playPoint();
                                bonusAnimation.remove(bonus);
                                spriteHit = true;
                            }
                        }
                    }
                }
                if (!spriteHit) {
                    synchronized (getHolder()) {
                        for (int i = animationList.size() - 1; i >= 0; i--) {
                            Animation animation = animationList.get(i);
                            createBonus = rnd.nextInt(bonusChance);
                            if (animation.isTouched(b.x, b.y)) {
                                if (currentColorNum == animationListNum.get(i)) {
                                    score = score - 10;
                                    playTime -= 5000;
                                    theGameActivity.vibrator();
                                    theGameActivity.playMinusPoint();

                                    if (currentColorNum != animationListNum
                                            .get(i)) {
                                        score = score + 10;
                                        theGameActivity.playPoint();
                                        if ((score % 5 == 0) && (score != 0)) {
                                            playTime += 3000;
                                            // ZeitTimer += 3000;
                                        }
                                        scoreEffekt = true;
                                    }
                                    if (createBonus == 1) {
                                        bonusAnimation
                                                .add(createBonusAnimation(R.drawable.bonusufo001));
                                    }
                                    checkColorTouched(i, b.x, b.y);
                                    if (!(createBonus == 1)) {
                                        rndCreateAnimation();
                                    }
                                    removeAnimation(i);
                                    spriteHit = true;
                                    break;
                                }
                            }
                        }
                    }
                }
                spriteHit = false;
            }
            return true;
        }
        case MotionEvent.ACTION_POINTER_DOWN: {

            PointF b = new PointF();
            b.x = event.getX(pointerIndex);
            b.y = event.getY(pointerIndex);

            if (System.currentTimeMillis() - lastClick > 10) {
                lastClick = System.currentTimeMillis();
                if (!spriteHit) {
                    synchronized (getHolder()) {
                        for (int i = bonusAnimation.size() - 1; i >= 0; i--) {
                            Animation bonus = bonusAnimation.get(i);
                            if (bonus.isTouched(b.x, b.y)) {
                                score++;
                                playTime += 15000;
                                theGameActivity.playPoint();
                                bonusAnimation.remove(bonus);
                                spriteHit = true;
                            }
                        }
                    }
                }
                if (!spriteHit) {
                    synchronized (getHolder()) {
                        for (int i = animationList.size() - 1; i >= 0; i--) {
                            Animation animation = animationList.get(i);
                            createBonus = rnd.nextInt(bonusChance);
                            if (animation.isTouched(b.x, b.y)) {
                                if (currentColorNum == animationListNum.get(i)) {
                                    score = score - 10;
                                    playTime -= 5000;
                                    theGameActivity.vibrator();
                                    theGameActivity.playMinusPoint();
                                }
                                if (currentColorNum != animationListNum.get(i)) {
                                    score = score + 10;
                                    theGameActivity.playPoint();
                                    if ((score % 5 == 0) && (score != 0)) {
                                        playTime += 3000;
                                        // ZeitTimer += 3000;
                                    }
                                    scoreEffekt = true;
                                }
                                if (createBonus == 1) {
                                    bonusAnimation
                                            .add(createBonusAnimation(R.drawable.bonusufo001));
                                }
                                checkColorTouched(i, b.x, b.y);
                                if (!(createBonus == 1)) {
                                    rndCreateAnimation();
                                }
                                removeAnimation(i);
                                spriteHit = true;
                                break;
                            }
                        }
                    }
                }
                spriteHit = false;
            }
            return true;
        }
        case MotionEvent.ACTION_MOVE: {
        }
        case MotionEvent.ACTION_UP: {
        }
        case MotionEvent.ACTION_POINTER_UP: {
        }
        case MotionEvent.ACTION_CANCEL: {
        }
        }
        return true;
    }
Dabei wird immer dies in der Logcat rausgegeben:

Code:
03-06 00:40:40.208: W/ActivityThread(2426): Application com.version.jaro.games.spiel is waiting for the debugger on port 8100...
03-06 00:40:40.213: I/System.out(2426): Sending WAIT chunk
03-06 00:40:40.418: I/System.out(2426): Debugger has connected
03-06 00:40:40.418: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:40.618: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:40.818: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:41.018: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:41.223: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:41.423: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:41.623: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:41.823: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:42.023: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:42.228: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:42.423: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:42.623: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:42.828: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:43.028: I/System.out(2426): waiting for debugger to settle...
03-06 00:40:43.228: I/System.out(2426): debugger has settled (1396)
03-06 00:40:43.303: E/(2426): file /data/data/com.nvidia.NvCPLSvc/files/driverlist.txt: not found!
03-06 00:40:43.303: I/(2426): Attempting to load EGL implementation /system/lib//egl/libEGL_tegra_impl
03-06 00:40:43.308: I/(2426): Loaded EGL implementation /system/lib//egl/libEGL_tegra_impl
03-06 00:40:43.333: I/(2426): Loading GLESv2 implementation /system/lib//egl/libGLESv2_tegra_impl
03-06 00:40:46.328: I/dalvikvm-heap(2426): Grow heap (frag case) to 7.385MB for 3686416-byte allocation
03-06 00:40:46.433: I/dalvikvm-heap(2426): Grow heap (frag case) to 13.635MB for 6554896-byte allocation
03-06 00:40:46.558: I/MediaPlayer(2426): setLPAflag() in
03-06 00:40:46.558: I/MediaPlayer(2426): mContext is null, can't getMirrorDisplayStatus!!!
03-06 00:40:46.558: I/MediaPlayer(2426): setLPAflag() out
03-06 00:40:46.563: W/MediaPlayer(2426): info/warning (1, 902)
03-06 00:40:46.573: D/MediaPlayer(2426): [DLNA]contentType = 902
03-06 00:40:46.573: D/MediaPlayer(2426): doStart() in
03-06 00:40:46.573: D/MediaPlayer(2426): getIntParameter = 902
03-06 00:40:46.598: D/MediaPlayer(2426): Mediaplayer receives message, message type: 200
03-06 00:40:46.598: I/MediaPlayer(2426): Info (1,902)
03-06 00:40:46.598: D/MediaPlayer(2426): Mediaplayer receives message, message type: 5
03-06 00:40:46.598: D/MediaPlayer(2426): Mediaplayer receives message, message type: 1
03-06 00:41:17.363: D/MediaPlayer(2426): release() in
03-06 00:41:17.368: D/MediaPlayer(2426): release() out
03-06 00:41:24.718: I/MediaPlayer(2426): setLPAflag() in
03-06 00:41:24.718: I/MediaPlayer(2426): mContext is null, can't getMirrorDisplayStatus!!!
03-06 00:41:24.718: I/MediaPlayer(2426): setLPAflag() out
03-06 00:41:24.728: W/MediaPlayer(2426): info/warning (1, 902)
03-06 00:41:24.733: D/MediaPlayer(2426): [DLNA]contentType = 902
03-06 00:41:24.733: D/MediaPlayer(2426): doStart() in
03-06 00:41:24.733: D/MediaPlayer(2426): getIntParameter = 902
03-06 00:41:24.748: D/MediaPlayer(2426): Mediaplayer receives message, message type: 200
03-06 00:41:24.748: I/MediaPlayer(2426): Info (1,902)
03-06 00:41:24.748: D/MediaPlayer(2426): Mediaplayer receives message, message type: 5
03-06 00:41:24.748: D/MediaPlayer(2426): Mediaplayer receives message, message type: 1
03-06 00:41:25.738: D/MediaPlayer(2426): release() in
03-06 00:41:25.743: D/MediaPlayer(2426): release() out
03-06 00:41:25.918: I/dalvikvm-heap(2426): Grow heap (frag case) to 16.000MB for 3686416-byte allocation
03-06 00:41:26.003: I/dalvikvm-heap(2426): Grow heap (frag case) to 22.251MB for 6554896-byte allocation
03-06 00:41:26.103: I/MediaPlayer(2426): setLPAflag() in
03-06 00:41:26.103: I/MediaPlayer(2426): mContext is null, can't getMirrorDisplayStatus!!!
03-06 00:41:26.103: I/MediaPlayer(2426): setLPAflag() out
03-06 00:41:26.108: W/MediaPlayer(2426): info/warning (1, 902)
03-06 00:41:26.113: I/MediaPlayer(2426): setLPAflag() in
03-06 00:41:26.113: I/MediaPlayer(2426): mContext is null, can't getMirrorDisplayStatus!!!
03-06 00:41:26.113: I/MediaPlayer(2426): setLPAflag() out
03-06 00:41:26.113: W/MediaPlayer(2426): info/warning (1, 902)
03-06 00:41:26.123: I/MediaPlayer(2426): setLPAflag() in
03-06 00:41:26.123: I/MediaPlayer(2426): mContext is null, can't getMirrorDisplayStatus!!!
03-06 00:41:26.123: I/MediaPlayer(2426): setLPAflag() out
03-06 00:41:26.123: W/MediaPlayer(2426): info/warning (1, 902)
03-06 00:41:26.128: D/MediaPlayer(2426): [DLNA]contentType = 902
03-06 00:41:26.128: D/MediaPlayer(2426): doStart() in
03-06 00:41:26.128: D/MediaPlayer(2426): getIntParameter = 902
03-06 00:41:26.148: D/MediaPlayer(2426): Mediaplayer receives message, message type: 200
03-06 00:41:26.148: I/MediaPlayer(2426): Info (1,902)
03-06 00:41:26.148: D/MediaPlayer(2426): Mediaplayer receives message, message type: 5
03-06 00:41:26.148: D/MediaPlayer(2426): Mediaplayer receives message, message type: 1
03-06 00:41:26.153: D/MediaPlayer(2426): Mediaplayer receives message, message type: 200
03-06 00:41:26.153: I/MediaPlayer(2426): Info (1,902)
03-06 00:41:26.153: D/MediaPlayer(2426): Mediaplayer receives message, message type: 5
03-06 00:41:26.153: D/MediaPlayer(2426): Mediaplayer receives message, message type: 1
03-06 00:41:26.153: D/MediaPlayer(2426): Mediaplayer receives message, message type: 200
03-06 00:41:26.158: I/MediaPlayer(2426): Info (1,902)
03-06 00:41:26.158: D/MediaPlayer(2426): Mediaplayer receives message, message type: 5
03-06 00:41:26.158: D/MediaPlayer(2426): Mediaplayer receives message, message type: 1
03-06 00:41:26.348: W/MediaPlayer-JNI(2426): MediaPlayer finalized without being released
03-06 00:41:27.748: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(545.3951, 617.95593)
03-06 00:41:27.748: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(545.3951, 617.95593)
03-06 00:41:28.198: D/MediaPlayer(2426): [DLNA]contentType = 902
03-06 00:41:28.198: D/MediaPlayer(2426): doStart() in
03-06 00:41:28.198: D/MediaPlayer(2426): getIntParameter = 902
03-06 00:41:28.243: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(164.79564, 1088.4697)
03-06 00:41:28.273: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(164.79564, 1088.4697)
03-06 00:41:28.278: D/MediaPlayer(2426): [DLNA]contentType = 902
03-06 00:41:28.278: D/MediaPlayer(2426): doStart() in
03-06 00:41:28.278: D/MediaPlayer(2426): getIntParameter = 902
03-06 00:41:28.323: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(289.04633, 650.4799)
03-06 00:41:28.353: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(289.04633, 650.4799)
03-06 00:41:28.358: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(107.247955, 766.84357)
03-06 00:41:28.358: I/System.out(2426): Anzahl in der liste: 1// Koordinaten: PointF(107.247955, 766.84357)
03-06 00:41:28.588: D/MediaPlayer(2426): Mediaplayer receives message, message type: 2
03-06 00:41:28.728: D/MediaPlayer(2426): Mediaplayer receives message, message type: 2
03-06 00:41:33.803: W/dalvikvm(2426): threadid=12: thread exiting with uncaught exception (group=0x418ada08)
03-06 00:41:33.803: E/AndroidRuntime(2426): FATAL EXCEPTION: Thread-3614
03-06 00:41:33.803: E/AndroidRuntime(2426): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
03-06 00:41:33.803: E/AndroidRuntime(2426):     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
03-06 00:41:33.803: E/AndroidRuntime(2426):     at java.util.ArrayList.get(ArrayList.java:304)
03-06 00:41:33.803: E/AndroidRuntime(2426):     at jaro.games.spiel.GameView.onDraw(GameView.java:247)
03-06 00:41:33.803: E/AndroidRuntime(2426):     at jaro.games.spiel.GameLoopThread.run(GameLoopThread.java:28)
03-06 00:41:33.833: D/MediaPlayer(2426): release() in
03-06 00:41:33.838: D/MediaPlayer(2426): release() out
03-06 00:41:35.598: D/Process(2426): killProcess, pid=2426
03-06 00:41:35.598: D/Process(2426): dalvik.system.VMStack.getThreadStackTrace(Native Method)
03-06 00:41:35.598: D/Process(2426): java.lang.Thread.getStackTrace(Thread.java:599)
03-06 00:41:35.598: D/Process(2426): android.os.Process.killProcess(Process.java:1004)
03-06 00:41:35.598: D/Process(2426): com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:123)
03-06 00:41:35.598: D/Process(2426): java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
03-06 00:41:35.598: D/Process(2426): java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
Hat vielleicht jemand eine Ahnung was ich falsch gemacht habe in meinem Programm, weil ich wirklich nicht weiter komme und keine Idee habe was ich machen könnte.

Danke im Voraus für eure Mühe.:thumbup:

silverXXI
 
Du bekommst eine IndexOutOfBoundsException beim Zugriff auf eine ArrayList. Ich rate mal und tippe darauf, dass z.B. "int i = bonusAnimation.size() - 1" falsch ist, da size() die Anzahl der Elemente der ArrayList zurück gibt und du mit "-1" den Bereich unterschreitest.
 
Danke Katy für deine schnelle Antwort.

Ich habe den Fehler behoben und in den Zeilen:

for (int i = bonusAnimation.size(); i >= 0; i--) {
und
for (int i = animationList.size(); i >= 0; i--) {

das -1 entfernt, jedoch funktioniert jetzt das TouchEvent nicht mehr.
Schon bei der ersten Berührung stürzt die App ab und gibt diese Meldung.

Code:
03-06 13:22:22.459: W/ActivityThread(21485): Application com.version.jaro.games.spiel is waiting for the debugger on port 8100...
03-06 13:22:22.479: I/System.out(21485): Sending WAIT chunk
03-06 13:22:22.679: I/System.out(21485): Debugger has connected
03-06 13:22:22.684: I/System.out(21485): waiting for debugger to settle...
03-06 13:22:22.884: I/System.out(21485): waiting for debugger to settle...
03-06 13:22:23.084: I/System.out(21485): waiting for debugger to settle...
03-06 13:22:23.284: I/System.out(21485): waiting for debugger to settle...
03-06 13:22:23.484: I/System.out(21485): waiting for debugger to settle...
03-06 13:22:23.684: I/System.out(21485): waiting for debugger to settle...
03-06 13:22:23.889: I/System.out(21485): waiting for debugger to settle...
03-06 13:22:24.089: I/System.out(21485): waiting for debugger to settle...
03-06 13:22:24.289: I/System.out(21485): waiting for debugger to settle...
03-06 13:22:24.489: I/System.out(21485): waiting for debugger to settle...
03-06 13:22:24.689: I/System.out(21485): waiting for debugger to settle...
03-06 13:22:24.889: I/System.out(21485): waiting for debugger to settle...
03-06 13:22:25.089: I/System.out(21485): waiting for debugger to settle...
03-06 13:22:25.289: I/System.out(21485): debugger has settled (1414)
03-06 13:22:25.379: E/(21485): file /data/data/com.nvidia.NvCPLSvc/files/driverlist.txt: not found!
03-06 13:22:25.379: I/(21485): Attempting to load EGL implementation /system/lib//egl/libEGL_tegra_impl
03-06 13:22:25.384: I/(21485): Loaded EGL implementation /system/lib//egl/libEGL_tegra_impl
03-06 13:22:25.404: I/(21485): Loading GLESv2 implementation /system/lib//egl/libGLESv2_tegra_impl
03-06 13:22:28.399: I/dalvikvm-heap(21485): Grow heap (frag case) to 7.385MB for 3686416-byte allocation
03-06 13:22:28.509: I/dalvikvm-heap(21485): Grow heap (frag case) to 13.635MB for 6554896-byte allocation
03-06 13:22:28.634: I/MediaPlayer(21485): setLPAflag() in
03-06 13:22:28.634: I/MediaPlayer(21485): mContext is null, can't getMirrorDisplayStatus!!!
03-06 13:22:28.634: I/MediaPlayer(21485): setLPAflag() out
03-06 13:22:28.639: W/MediaPlayer(21485): info/warning (1, 902)
03-06 13:22:28.649: D/MediaPlayer(21485): [DLNA]contentType = 902
03-06 13:22:28.649: D/MediaPlayer(21485): doStart() in
03-06 13:22:28.649: D/MediaPlayer(21485): getIntParameter = 902
03-06 13:22:28.669: D/MediaPlayer(21485): Mediaplayer receives message, message type: 200
03-06 13:22:28.669: I/MediaPlayer(21485): Info (1,902)
03-06 13:22:28.669: D/MediaPlayer(21485): Mediaplayer receives message, message type: 5
03-06 13:22:28.674: D/MediaPlayer(21485): Mediaplayer receives message, message type: 1
03-06 13:22:29.894: D/MediaPlayer(21485): release() in
03-06 13:22:29.899: D/MediaPlayer(21485): release() out
03-06 13:22:30.059: I/dalvikvm-heap(21485): Grow heap (frag case) to 16.000MB for 3686416-byte allocation
03-06 13:22:30.144: I/dalvikvm-heap(21485): Grow heap (frag case) to 22.250MB for 6554896-byte allocation
03-06 13:22:30.244: I/MediaPlayer(21485): setLPAflag() in
03-06 13:22:30.244: I/MediaPlayer(21485): mContext is null, can't getMirrorDisplayStatus!!!
03-06 13:22:30.244: I/MediaPlayer(21485): setLPAflag() out
03-06 13:22:30.244: W/MediaPlayer(21485): info/warning (1, 902)
03-06 13:22:30.249: I/MediaPlayer(21485): setLPAflag() in
03-06 13:22:30.249: I/MediaPlayer(21485): mContext is null, can't getMirrorDisplayStatus!!!
03-06 13:22:30.249: I/MediaPlayer(21485): setLPAflag() out
03-06 13:22:30.254: W/MediaPlayer(21485): info/warning (1, 902)
03-06 13:22:30.259: I/MediaPlayer(21485): setLPAflag() in
03-06 13:22:30.259: I/MediaPlayer(21485): mContext is null, can't getMirrorDisplayStatus!!!
03-06 13:22:30.259: I/MediaPlayer(21485): setLPAflag() out
03-06 13:22:30.264: W/MediaPlayer(21485): info/warning (1, 902)
03-06 13:22:30.264: D/MediaPlayer(21485): [DLNA]contentType = 902
03-06 13:22:30.264: D/MediaPlayer(21485): doStart() in
03-06 13:22:30.264: D/MediaPlayer(21485): getIntParameter = 902
03-06 13:22:30.279: D/MediaPlayer(21485): Mediaplayer receives message, message type: 200
03-06 13:22:30.279: I/MediaPlayer(21485): Info (1,902)
03-06 13:22:30.279: D/MediaPlayer(21485): Mediaplayer receives message, message type: 5
03-06 13:22:30.279: D/MediaPlayer(21485): Mediaplayer receives message, message type: 1
03-06 13:22:30.284: D/MediaPlayer(21485): Mediaplayer receives message, message type: 200
03-06 13:22:30.284: I/MediaPlayer(21485): Info (1,902)
03-06 13:22:30.284: D/MediaPlayer(21485): Mediaplayer receives message, message type: 5
03-06 13:22:30.284: D/MediaPlayer(21485): Mediaplayer receives message, message type: 1
03-06 13:22:30.284: D/MediaPlayer(21485): Mediaplayer receives message, message type: 200
03-06 13:22:30.284: I/MediaPlayer(21485): Info (1,902)
03-06 13:22:30.284: D/MediaPlayer(21485): Mediaplayer receives message, message type: 5
03-06 13:22:30.284: D/MediaPlayer(21485): Mediaplayer receives message, message type: 1
03-06 13:22:30.484: W/MediaPlayer-JNI(21485): MediaPlayer finalized without being released
03-06 13:22:35.099: E/InputEventReceiver(21485): Exception dispatching input event.
03-06 13:22:35.099: E/MessageQueue-JNI(21485): Exception in MessageQueue callback: handleReceiveCallback
03-06 13:22:35.114: E/MessageQueue-JNI(21485): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at java.util.ArrayList.get(ArrayList.java:304)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at jaro.games.spiel.GameView.onTouchEvent(GameView.java:521)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.View.dispatchTouchEvent(View.java:7320)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2185)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1886)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2185)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1886)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2185)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1886)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2038)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1490)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.app.Activity.dispatchTouchEvent(Activity.java:2471)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1986)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.View.dispatchPointerEvent(View.java:7514)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3679)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3623)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4798)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4777)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4873)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:208)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.os.MessageQueue.nativePollOnce(Native Method)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.os.MessageQueue.next(MessageQueue.java:125)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.os.Looper.loop(Looper.java:135)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at android.app.ActivityThread.main(ActivityThread.java:5751)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at java.lang.reflect.Method.invokeNative(Native Method)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at java.lang.reflect.Method.invoke(Method.java:511)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1083)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850)
03-06 13:22:35.114: E/MessageQueue-JNI(21485):     at dalvik.system.NativeStart.main(Native Method)
03-06 13:22:36.564: W/dalvikvm(21485): threadid=1: thread exiting with uncaught exception (group=0x418ada08)
03-06 13:22:36.574: E/AndroidRuntime(21485): FATAL EXCEPTION: main
03-06 13:22:36.574: E/AndroidRuntime(21485): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
03-06 13:22:36.574: E/AndroidRuntime(21485):     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at java.util.ArrayList.get(ArrayList.java:304)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at jaro.games.spiel.GameView.onTouchEvent(GameView.java:521)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.View.dispatchTouchEvent(View.java:7320)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2185)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1886)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2185)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1886)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2185)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1886)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2038)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1490)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.app.Activity.dispatchTouchEvent(Activity.java:2471)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1986)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.View.dispatchPointerEvent(View.java:7514)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3679)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3623)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4798)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4777)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4873)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:208)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.os.MessageQueue.nativePollOnce(Native Method)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.os.MessageQueue.next(MessageQueue.java:125)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.os.Looper.loop(Looper.java:135)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at android.app.ActivityThread.main(ActivityThread.java:5751)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at java.lang.reflect.Method.invokeNative(Native Method)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at java.lang.reflect.Method.invoke(Method.java:511)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1083)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850)
03-06 13:22:36.574: E/AndroidRuntime(21485):     at dalvik.system.NativeStart.main(Native Method)
03-06 13:22:38.679: D/Process(21485): killProcess, pid=21485
03-06 13:22:38.679: D/Process(21485): dalvik.system.VMStack.getThreadStackTrace(Native Method)
03-06 13:22:38.679: D/Process(21485): java.lang.Thread.getStackTrace(Thread.java:599)
03-06 13:22:38.679: D/Process(21485): android.os.Process.killProcess(Process.java:1004)
03-06 13:22:38.679: D/Process(21485): com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:123)
03-06 13:22:38.679: D/Process(21485): java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
03-06 13:22:38.679: D/Process(21485): java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
03-06 13:22:38.679: D/Process(21485): dalvik.system.NativeStart.main(Native Method)

Meine Idee bei diesem Konstruk war, dass die ArrayList mir durch size() die Anzahl der Objekte wiedergibt und ich mit der For-Schleife und dem Befehl get():
Animation animation = bonusAnimation.get(i);
die gesamte Liste durchgehe und schaue, wo die Koordinaten der Berührung und des Objekts im View übereinstimmen.
Dabei habe ich angenommen, dass die ArrayList mit der Position 0 immer beginnt, was vielleicht ein Fehler war.

Wäre super wenn du mir da helfen könntest, da ich unbedingt diese App fertig bekommen will.

gruß

silverXXI
 
Zuletzt bearbeitet:
Code:
03-06 00:41:33.803: E/AndroidRuntime(2426): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
03-06 00:41:33.803: E/AndroidRuntime(2426):     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
03-06 00:41:33.803: E/AndroidRuntime(2426):     at java.util.ArrayList.get(ArrayList.java:304)
03-06 00:41:33.803: E/AndroidRuntime(2426):     at jaro.games.spiel.GameView.onDraw(GameView.java:247)
Du greifst laut Stacktrace in onDraw auf ein Array ohne Elemente zu, nicht in onTouch - da ist(scheint) alles richtig.
 
hallo DieGoldeneMitte,

ich danke dir für deine schnelle Hilfe, es war tatsächlich so, dass in der onDraw Methode sich ein Fehler eingeschlichen hat. Jetzt funktioniert alles tadellos, weshalb ich mich nochmals bei Katy und DieGoldeneMitte bedanke. :thumbup:


gruß

silverXXI
 

Ähnliche Themen

D
Antworten
17
Aufrufe
408
datNeMo
D
M
Antworten
3
Aufrufe
166
moin
M
D
Antworten
4
Aufrufe
1.121
jogimuc
J
Zurück
Oben Unten