2013-01-31 21 views
6

Tôi có một ứng dụng Android với một loạt các bộ lọc ảnh. Bộ lọc được thực hiện với OpenGL ES 2.0 vì vậy khi tôi muốn lưu hình ảnh cuối cùng tôi thực hiện cuộc gọi glReadPixels. Nó hoạt động trên mọi thiết bị tôi đã thử nghiệm, tuy nhiên có vẻ như nó không hoạt động trên Nexus 4. Người dùng báo cáo rằng họ có thể áp dụng bộ lọc nhưng khi họ lưu hình ảnh cuối cùng họ không thể tìm thấy trên thiết bị. Tôi muốn biết nếu có bất kỳ cách nào cho tôi để thi đua nexus 4 và thử nghiệm ứng dụng của tôi trên giả lập? Tôi đã thử nghiệm trên trình giả lập và nó hoạt động tốt cũng sẽ là tốt để biết nếu có ai có vấn đề tương tự với Nexus 4.Làm cách nào để gỡ lỗi OPENGL ES 2.0 trên Nexus 4 mà không cần có thiết bị?

Cuộc gọi glReadPixels của tôi.

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

Bạn đang lưu tệp ở đâu? Bạn đã thử nghiệm nó trên các thiết bị JB 4.2 khác chưa? Đã có thay đổi trong bố cục thẻ SD từ 4,1 đến 4,2. – Clyde

Trả lời

1

Thêm ghi nhật ký bổ sung và yêu cầu một số người dùng thử gửi cho bạn kết quả đầu ra; điều này có thể giúp bạn thu hẹp nơi mà vấn đề cụ thể là, cho dù đó là với glReadPixels, hoặc các tập tin lưu. Cụ thể, sử dụng glGetError() và ghi lại giá trị của nó và thêm các khối try/catch xung quanh tệp I/O:

try { 
    .... file ops 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

Bạn cũng có thể sử dụng một công cụ như ACRA (acra - Báo cáo sự cố ứng dụng cho Android - Google Project Hosting) để giúp người dùng của bạn gửi thông tin này theo cách của bạn. –