2013-01-05 20 views
22

मुझे Google के OpenGL demo for Android के साथ वास्तविक समस्या है। मैंने इसे ग्रहण में स्थापित किया है लेकिन इसे निष्पादित करने के लिए नहीं मिल सकता है। यह किसी भी समस्या के साथ बनाता है, लेकिन फिर खुलने से ठीक पहले "java.lang.IllegalArgumentException: No config chosen" पर बंद हो जाता है। मैं Google खोजों को ऊपर और नीचे चला गया हूं और बिना समाधान के थ्रेड स्टैक कर रहा हूं।एंड्रॉइड ओपनजीएल डेमो "कोई कॉन्फ़िगर नहीं चुना गया"

मुझे लगता था कि मैं क्या सोचा था यहाँ एक का नेतृत्व किया गया था: OpenGL ES 2.0 Support for Android?

यह एक कमांड gLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 0); लेकिन अफसोस, मैं एंड्रॉयड पर ओपन के लिए नया हूँ और पता नहीं है का उपयोग करता है, जहां यह डाल करने के लिए ...

किसी भी मदद की सराहना की जाएगी। मैं नवीनतम एंड्रॉइड एसडीके के साथ एक्लिप्स जूनो चला रहा हूं। मैं GPU हार्डवेयर सक्षम के साथ 4.2 जेली बीन एमुलेटर पर इसका परीक्षण कर रहा हूं।

+0

के संभावित डुप्लिकेट (http: // stackoverflow। com/प्रश्न/13717470/opengl-es-2-0-support-for-android) –

उत्तर

49

समाधान super.setEGLConfigChooser(8 , 8, 8, 8, 16, 0); को setRenderer(new MyGLRenderer()); लाइन से पहले MyGLSurfaceView कक्षा के अंदर रखने के लिए था।

+3

इस दोस्त को समझने के लिए धन्यवाद, सुनिश्चित नहीं है कि लगभग सभी एंड्रॉइड नमूना ऐप्स इतने बोर्क क्यों हैं। यह वास्तव में लोगों को पहली बार एसडीके सीखने की कोशिश कर रहा है। – thamster

+2

आप 'सुपर' को छोड़ सकते हैं। – trungly

+0

अंततः मुझे समाधान मिला, धन्यवाद आदमी। क्या आपको पता है कि यह क्यों किया जाना चाहिए? और यह कोड में पहले से क्यों नहीं है? – simtaxman

1

एंड्रॉइड स्टूडियो के साथ ईजीएल चयनकर्ता सेट करने के लिए मेरा कोड देखें। यह जोड़े सही होने के बाद आप अपने 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 

} 
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 

आशा यह किसी भी भ्रम को साफ करता है: [? Android के लिए ओपन ES 2.0 समर्थन] डी