अंतिम अद्यतन
2013/12/20 के रूप में, Android Dashboard शो है कि उपकरणों के लगभग 100% अब ओपन 2.0+ समर्थन तो यह जवाब अब प्रासंगिक नहीं है। आपको अपने मैनिफेस्ट में ओपनजीएल ईएस 2.0+ की आवश्यकता हो सकती है।
अद्यतन
यह गूगल के राजस्व 7 के रूप में तय हो गई है सेवाएं SDK ऐड-ऑन खेलते हैं। <uses-feature android:glEsVersion="0x00020000" android:required="false"/>
और detect OpenGL ES 2.0 at runtime का उपयोग करना सुरक्षित है।
मूल जवाब
ऐसा लगता है कि Google मानचित्र Android API v2 एक स्पष्ट <uses-feature android:glEsVersion="0x00020000" android:required="true/>
घोषणा AndroidManifest.xml
में तो वहाँ सभी OpenGL ES 1.x उपकरणों को छोड़े बिना Google मानचित्र Android API v2 सेवाओं को तैनात करने का कोई तरीका नहीं है की आवश्यकता है । इस लेखन के समय, Google's Android Dashboard दिखाता है कि 1.1 और 2.0 उपकरणों में से 9 0.8% डिवाइस 2.0 का समर्थन करते हैं।
से किसी विशेष उपकरण (Motorola XOOM) पर, supportsEs2 = true
में इस कोड के परिणाम:
Caused by: java.lang.RuntimeException: Google Maps Android API only supports OpenGL ES 2.0 andabove. Please add <uses-feature android:glEsVersion="0x00020000" android:required="true" /> into AndroidManifest.xml
at maps.y.ae.a(Unknown Source)
at maps.y.bu.a(Unknown Source)
at maps.y.p.onCreateView(Unknown Source)
at com.google.android.gms.maps.internal.IMapFragmentDelegate$Stub.onTransact(IMapFragmentDelegate.java:107)
at android.os.Binder.transact(Binder.java:297)
at com.google.android.gms.maps.internal.IMapFragmentDelegate$a$a.onCreateView(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment$a.onCreateView(Unknown Source)
at com.google.android.gms.internal.c$4.a(Unknown Source)
at com.google.android.gms.internal.c.a(Unknown Source)
at com.google.android.gms.internal.c.onCreateView(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment.onCreateView(Unknown Source)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:884)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1066)
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1168)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:280)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669)
... 22 more
:
// Check if the system supports OpenGL ES 2.0.
final ActivityManager activityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
final boolean supportsEs2 = configurationInfo.reqGlEsVersion >= 0x20000;
हालांकि, जब वहाँ प्रकट करने में कोई <uses-feature>
घोषणा है, MapFragment एक RuntimeException फेंक है
यह उम्मीद करने के लिए है कि मानचित्र लाइब्रेरी में एक अपडेट इस सीमा को हटा देगा ताकि हम एक एकल एपीके तैनात कर सकें और यह निर्धारित करने के लिए रनटाइम एपीआई का उपयोग कर सकें कि नया Google मानचित्र v2 अनुभव लोड करना है या नहीं, या किसी अन्य compat पर वापस आना ible समाधान।
स्रोत
2012-12-05 17:42:31
बस एंड्रॉइड: आवश्यक = "झूठा"। फिर इसे फ़िल्टर नहीं किया जाना चाहिए। – thaussma
'एंड्रॉइड: आवश्यक =" झूठा "' परिणाम 12-05 22: 18: 31.484: ई/एंड्रॉइड रनटाइम (9 618): इसके कारण: java.lang.RuntimeException: Google मैप्स एंड्रॉइड एपीआई केवल ओपनजीएल ईएस 2.0 और ऊपर का समर्थन करता है। कृपया <उपयोग-फीचर एंड्रॉइड: glEsVersion = "0x00020000" एंड्रॉइड जोड़ें: आवश्यक = "सत्य" /> एंड्रॉइडमैनीफेस्ट.एक्सएमएल 'नेक्सस एस 4.1.2 – qubz
पर समान समस्या, अगर मैं मैनिफेस्ट से आवश्यकता को हटाता हूं (या सेट आवश्यक = "झूठा") MapFragment किसी डिवाइस पर अपवाद फेंकता है जो OpenGL ES 2.0 का समर्थन करता है। ऐसा लगता है कि मैपफ्रैगमेंट गतिविधि सेवा कॉन्फ़िगरेशन में आवश्यकता की तलाश कर रहा है, यह जांचने के बजाय कि डिवाइस को ओपनजीएल ES 2.0 के लिए समर्थन है या नहीं। –