Android OpenGL演示“未选择配置”

时间:2013-01-05 00:49:10

标签: android opengl-es-2.0

我的Google OpenGL demo for Android遇到了一个真正的问题。我在Eclipse中设置它但无法执行它。它构建没有问题,但在它打开之前在"java.lang.IllegalArgumentException: No config chosen"处停止。我一直在谷歌搜索和堆栈线程上下,没有解决方案。

我确实在这里找到了我认为的主角:OpenGL ES 2.0 Support for Android?

它使用命令gLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 0); 但是,唉,我是Android上的新手OpenGL,不知道把它放到哪里......

非常感谢任何帮助。我正在使用最新的android sdk运行Eclipse Juno。我正在使用启用GPU硬件的4.2 Jelly Bean仿真器上测试它。

3 个答案:

答案 0 :(得分:50)

解决方案只是将super.setEGLConfigChooser(8 , 8, 8, 8, 16, 0);放在setRenderer(new MyGLRenderer());行之前的MyGLSurfaceView类中。

答案 1 :(得分:5)

现在已经很老了,但万一人们还在想为什么要这样做......

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

答案 2 :(得分:1)

请参阅我的代码,了解如何使用Android Studio设置EGL选择器。在调用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

}