Ответ 1
Решение состояло в том, чтобы разместить super.setEGLConfigChooser(8 , 8, 8, 8, 16, 0);
внутри класса MyGLSurfaceView непосредственно перед линией setRenderer(new MyGLRenderer());
.
У меня настоящая проблема с Google демонстрацией OpenGL для Android. Я установил его в Eclipse, но не могу заставить его выполнить. Он строит без проблем, но затем останавливается на "java.lang.IllegalArgumentException: No config chosen"
прямо перед его открытием. Я искал поисковые запросы Google и Stack без решения.
Я нашел то, что я считал ведущим здесь: OpenGL ES 2.0 Поддержка Android?
Он использует команду gLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 0);
но, увы, я новичок в OpenGL на андроиде и не знаю, куда его поместить...
Любая помощь будет принята с благодарностью. Я запускаю Eclipse Juno с последним Android-железом. Я тестирую это на эмуляторе 4.2 Jelly Bean с включенным оборудованием GPU.
Решение состояло в том, чтобы разместить super.setEGLConfigChooser(8 , 8, 8, 8, 16, 0);
внутри класса MyGLSurfaceView непосредственно перед линией setRenderer(new MyGLRenderer());
.
Это уже довольно давно, но на всякий случай люди все еще задаются вопросом, почему это нужно сделать....
setEGLConfigChooser(int redSize, int greenSize, int blueSize, int alphaSize,
int depthSize, int stencilSize)
Параметры - это количество бит, которое вы назначаете цветным битам
8 бит = 255 16 бит = 65535
Таким образом, приведенная ниже конфигурация в основном устанавливает это:
setEGLConfigChooser(8, 8, 8, 8, 16, 0);
r,g,b,a = 0-255,0-255,0-255,0-255
depth = 0-65535
stencil = 0
Надеюсь, что это устранит любую путаницу: D
См. мой код для настройки выбора EGL в Android Studio. Добавьте его сразу после вызова конструктора для вашего GLSurfaceView:
код:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GLSurfaceView view = new GLSurfaceView(this);
//Chose EGL Config Here To Set Element Size For RGB data Alpha,
// Depth, Stencil, See The Documentation...
view.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
view.setRenderer(new OpenGLRenderer());
setContentView(view);
//setContentView(R.layout.activity_main);
}
//....additional methods for activity
}