Я видел, как несколько человек берут эту тему и начинают меня путать. Я действительно надеюсь, что кто-то может дать мне окончательный ответ!:)
Я предполагаю, что нужно быть тупым: поддерживает ли эмулятор Android OpenGL ES 2.0? Я видел, как некоторые люди говорили: "Да, но вам нужно изменить несколько настроек". и я также видел "Нет, это не поддерживает, период". Вот что я сделал, чтобы попытаться исправить проблему, включая некоторые сообщения об ошибках, которые я получил.
Сначала я модифицировал AndroidManifest.xml, чтобы содержать следующий код:
<uses-feature
android:glEsVersion="0x00020000" />
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="17" />
Затем, когда я хочу создать экземпляр моего GLSurfaceView, я использую эту последовательность кода для его создания:
super(context);
setEGLContextClientVersion(2);
setRenderer(new MyRenderer());
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
Затем, везде, где я смотрел, я сказал, что вы должны войти в AVD Manager, выбрать эмулятор, перейти к "Hardware", добавить "эмуляцию графического процессора" и установить логическое значение "yes". Однако вот что я вижу, когда смотрю на меня:
Какая особенность заключается в том, что у меня есть другой эмулятор в моем AVD Manager, у которого у меня есть таблица "Оборудование":
И просто для того, чтобы показать вам, что я делаю, вот какой-то код, который делает некоторые вещи, которые я хочу делать в OpenGL ES 2.0 (в основном я получил это от собственных обучающих программ Android):
int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, vertexShaderCode);
int fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentShaderCode);
program = GLES20.glCreateProgram();
GLES20.glAttachShader(program, vertexShader);
GLES20.glAttachShader(program, fragmentShader);
GLES20.glLinkProgram(program);
Я не хочу менять свой код для работы с OpenGL ES 1.0, потому что это потребует много головных болей, и если я смогу его избежать, я буду.
Наконец, когда я пытаюсь запустить свою программу, программа закрывается с окном: "К сожалению, остановилась". Это то, что сказал мне LogCat:
12-05 06:16:27.165: E/AndroidRuntime(936): FATAL EXCEPTION: GLThread 81
12-05 06:16:27.165: E/AndroidRuntime(936): java.lang.IllegalArgumentException: No config chosen
12-05 06:16:27.165: E/AndroidRuntime(936): at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:874)
12-05 06:16:27.165: E/AndroidRuntime(936): at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1024)
12-05 06:16:27.165: E/AndroidRuntime(936): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1401)
12-05 06:16:27.165: E/AndroidRuntime(936): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
Я скажу, что я не эксперт по этому поводу, и это мой первый опыт работы с OpenGL. Если у кого-нибудь есть идеи, что я могу сделать, чтобы исправить это, я был бы навсегда благодарен.:) Спасибо!