2013-01-31 15 views
6

Ich habe eine Android-App mit einer Reihe von Foto-Filter. Filter werden mit OpenGL ES 2.0 implementiert. Wenn ich also das fertige Bild speichern möchte, mache ich glReadPixels call. Es funktioniert auf jedem Gerät, das ich getestet habe, aber es scheint, es funktioniert nicht auf Nexus 4. Benutzer berichten, dass sie die Filter anwenden können, aber wenn sie das endgültige Bild speichern, können sie es nicht auf den Geräten finden. Ich möchte wissen, ob es eine Möglichkeit für mich gibt, Nexus 4 zu emulieren und meine App auf dem Emulator zu testen? Ich habe auf Emulator getestet und es funktioniert gut auch wäre es gut zu wissen, ob jemand ähnliches Problem mit Nexus 4 hatte.Wie debugge OPENGL ES 2.0 Fehler auf Nexus 4, ohne das Gerät?

Mein glReadPixels Anruf.

GLES20.glReadPixels(0, 0, saveWidth, saveHeight, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, mPixels); 
+0

Wo speichern Sie die Datei? Haben Sie es auf anderen JB 4.2-Geräten getestet? Das SD-Kartenlayout wurde von 4.1 auf 4.2 geändert. – Clyde

Antwort

1

Fügen Sie zusätzliche Protokollierung hinzu und erhalten Sie Testbenutzer, die Ihnen die Ausgabe senden; Dies kann Ihnen dabei helfen, einzuschränken, wo das spezifische Problem liegt, ob es mit glReadPixels oder der Datei gespeichert ist. Verwenden Sie insbesondere glGetError() und protokollieren Sie deren Wert und fügen Sie try/catch-Blöcke um die Datei-E/A hinzu:

+0

Sie können auch ein Tool wie ACRA (Acra - Application Crash Report für Android - Google Project Hosting) verwenden, um Ihren Benutzern zu helfen, diese Informationen auf Ihre Weise zu senden. –