2013-01-05 16 views
22

Sto riscontrando un problema reale con lo OpenGL demo for Android di Google. L'ho configurato in Eclipse ma non riesco a farlo funzionare. Costruisce senza problemi, ma si ferma allo "java.lang.IllegalArgumentException: No config chosen" subito prima dell'apertura. Sono stato su e giù per le ricerche di Google e le sequenze di stack senza soluzione.Demo Android OpenGL "Nessuna configurazione selezionata"

ho trovato quello che ho pensato è stato un vantaggio qui: OpenGL ES 2.0 Support for Android?

Si utilizza un comando gLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 0); ma ahimè, io sono nuovo a OpenGL su Android e non sanno dove metterlo ...

Qualsiasi aiuto sarebbe molto apprezzato. Sto eseguendo Eclipse Juno con l'ultimo sdk di Android. Sto testando questo su un emulatore Jelly Bean 4.2 con hardware GPU abilitato.

+0

possibile duplicato (http: // StackOverflow. it/questions/13717470/opengl-es-2-0-support-for-android) –

risposta

49

La soluzione era solo posizionare super.setEGLConfigChooser(8 , 8, 8, 8, 16, 0); all'interno della classe MyGLSurfaceView subito prima della riga setRenderer(new MyGLRenderer());.

+3

Grazie per aver capito questo tizio, non sono sicuro del motivo per cui quasi tutte le app di esempio di Android sono così borked. Fa davvero male alle persone che cercano di imparare l'SDK per la prima volta. – thamster

+2

Puoi omettere il 'super'. – trungly

+0

Finalmente ho trovato la soluzione, grazie amico. Sai perché questo deve essere fatto però? E perché non è già nel codice? – simtaxman

1

Vedere il mio codice per l'impostazione di EOS chooser con Android Studio. Aggiungilo subito dopo si chiama il costruttore per la vostra GLSurfaceView:

Codice:

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 

} 
5

Questo è abbastanza vecchio ora, ma solo nel caso in cui le persone sono ancora chiedendo perché questo deve essere fatto ....

setEGLConfigChooser(int redSize, int greenSize, int blueSize, int alphaSize, 
        int depthSize, int stencilSize) 

i parametri sono il numero di bit assegnati al bit di colore

8 bit = 255 16 bit = 65535

Così la configurazione di seguito è fondamentalmente l'impostazione di questo:

setEGLConfigChooser(8, 8, 8, 8, 16, 0); 

r,g,b,a = 0-255,0-255,0-255,0-255 

depth = 0-65535 

stencil = 0 

Spero che questo cancella qualsiasi confusione: [? 2.0 Supporto OpenGL ES per Android] D