I get several OpenGL errors in an Android emulator when I run simple code for drawing in SurfaceView. As a result, SurfaceView is not drawn when working in the emulator. The same code works correctly on the device (in this case, Amazon Fire HD 8 (2017 - KFDOWI)).
Here are the errors:
Emulator: android / android-emugl / host / libs / Translator / GLES_V2 / GLESv2Imp.cpp: glReadPixels: error 2827 0x502
Emulator: sPrepareTexImage2D: validation error 3087
Emulator: android / android-emugl / host / libs / Translator / GLES_V2 / GLESv2Imp.cpp: glTexImage2D: 3133 error 0x500
Emulator: sPrepareTexImage2D: validation error 3087
Emulator: android / android-emugl / host / libs / Translator / GLES_V2 / GLESv2Imp.cpp: glTexImage2D: 3133 error 0x500
Emulator: android / android-emugl / host / libs / Translator / GLES_V2 / GLESv2Imp.cpp: glTexSubImage2D: 3237 error 0x500
Here is the code:
import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.util.AttributeSet; import android.view.SurfaceHolder; import android.view.SurfaceView; public class CustomSurfaceView extends SurfaceView implements SurfaceHolder.Callback { private SurfaceHolder surfaceHolder; public CustomSurfaceView(Context context) { super(context); init(); } public CustomSurfaceView(Context context, AttributeSet attributeSet) { super(context, attributeSet); init(); } private void init() { this.surfaceHolder = getHolder(); surfaceHolder.addCallback(this); } @Override public void surfaceCreated(SurfaceHolder surfaceHolder) { Canvas canvas = surfaceHolder.lockCanvas(); canvas.drawColor(Color.RED); surfaceHolder.unlockCanvasAndPost(canvas); } @Override public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) { } @Override public void surfaceDestroyed(SurfaceHolder surfaceHolder) { } }
Activity:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 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" tools:context="MainActivity"> <CustomSurfaceView android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.constraint.ConstraintLayout>
System Information:
- MacOS High Sierra 10.13.2
- RAM 16 GB.
- Android Studio 3.0.1
- JRE 1.8.0_152
- HAXM 6.2.1
AVD Information:
- API 25
- Graphics: Automatic
- RAM: 1536 MB
Application Information:
In addition, I can run OpenGL ES 2.0 code in the same emulator without these problems.
source share