Position von TextView im Bildschirm ermitteln

  • 4 Antworten
  • Letztes Antwortdatum
4

469110

Gast
Hallo,
ich habe ein kleines simples Spiel entwickelt in dem Blöcke runterfallen die man dann auffangen muss. Diese Blöcke sind TextViews mit einer Hintergrundfarbe.
Irgendwann stürzt die App aber ab und ich hab keine Ahnung warum.
Ich bin mir zum größten Teil sicher das es an der Positionsermittlung liegt.

Ich bekomme folgende Fehlermeldung:
Code:
OpenGLRenderer: Cannot get a dirty matrix!
A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 29175 (Thread-30), pid 28792 (de.jo.lines)

und in der Google Play Console steht das drin:
Code:
  #00  pc 00000000000220ac  /system/lib64/libc.so (abort+116)
  #01  pc 0000000000008644  /system/lib64/liblog.so (__android_log_assert+296)
  #02  pc 0000000000101764  /system/lib64/libandroid_runtime.so (android::android_view_RenderNode_hasIdentityMatrix(long)+120)
  #03  pc 00000000003db840  /system/framework/arm64/boot-framework.oat (offset 0x3d1000) (android.graphics.Matrix.nIsAffine [DEDUPED]+64)
  #04  pc 0000000000b84b90  /system/framework/arm64/boot-framework.oat (offset 0x3d1000) (android.view.RenderNode.hasIdentityMatrix+48)
  #05  pc 0000000000c91a4c  /system/framework/arm64/boot-framework.oat (offset 0x3d1000) (android.view.View.transformFromViewToWindowSpace+188)
  #06  pc 0000000000c7a40c  /system/framework/arm64/boot-framework.oat (offset 0x3d1000) (android.view.View.getLocationInWindow+76)
  #07  pc 000000000001da64  /dev/ashmem/dalvik-jit-code-cache (deleted)

Meine Ermittlung der Standorts geht so:
Java:
public static Point getLocationOnScreen(View view) {
        int[] location = new int[2];
        view.getLocationInWindow(location);
        return new Point(location[0], location[1]);
    }

Hatte das jemand schon mal?
 
Hallo kann an der position liegen muss es aber nicht sein.
Er sagt dir das mit der matrix was nicht stimmt.

Hier wäre interessant wo wie du die benutzt. Ich denke mal das du dein layout Zooms und dafür die matrix benutzt. Mutmaßungen meiner seits.

Da wir keinen Code haben können wir auch nichts sagen. Das was du und gegen hast reicht nicht.
 
Zuletzt bearbeitet:
Ich könnte mir vorstellen, dass du hier ein nebenläufiges Problem hast. Das Animieren deiner runterfallenden Blöcke passiert in einem anderen Thread als dein getLocationOnScreen (oder eventuell sogar noch was anderes)
Dadurch ändert sich während der Operation irgendeine Matrix und du bist im inkonsitenten Zustand. Eventuell hilf hier Locking, aber das müsste man genauer untersuchen.
 
  • Danke
Reaktionen: jogimuc
Ja es wird in einem anderen Thread gemacht. Was genau ist Locking?
 

Ähnliche Themen

J
Antworten
1
Aufrufe
148
swa00
swa00
A
Antworten
4
Aufrufe
348
AppDevelopment
A
D
  • djsnoopy
Antworten
6
Aufrufe
809
djsnoopy
D
Zurück
Oben Unten