2012-10-16 10 views
6

मैं जब मैं अपने AndEngine कार्यक्रम इसे सफलतापूर्वक my frnds फोन पर चलाया जाता है चलाने के अपने फोन पर इस तरह त्रुटि हो रही है, लेकिन जब मैं मैं स्वाभाविक असंगत डिवाइस का पता चला की तरह त्रुटि हो रही है चलाने के लिए ...AndEngineRuntimeException: स्वाभाविक रूप से असंगत डिवाइस का पता चला।

मेरी logcat की कोशिश की नीचे

10-16 14:13:23.061: E/AndroidRuntime(4533): FATAL EXCEPTION: GLThread 10 
    10-16 14:13:23.061: E/AndroidRuntime(4533): java.lang.ExceptionInInitializerError 
    10-16 14:13:23.061: E/AndroidRuntime(4533): at org.andengine.opengl.vbo.attribute.VertexBufferObjectAttributeFix.glVertexAttribPointer(VertexBufferObjectAttributeFix.java:39) 
    10-16 14:13:23.061: E/AndroidRuntime(4533): at org.andengine.opengl.vbo.attribute.VertexBufferObjectAttributes.glVertexAttribPointers(VertexBufferObjectAttributes.java:50) 
    10-16 14:13:23.061: E/AndroidRuntime(4533): at org.andengine.opengl.shader.ShaderProgram.bind(ShaderProgram.java:126) 
    10-16 14:13:23.061: E/AndroidRuntime(4533): at org.andengine.opengl.shader.PositionTextureCoordinatesShaderProgram.bind(PositionTextureCoordinatesShaderProgram.java:86) 
    10-16 14:13:23.061: E/AndroidRuntime(4533): at org.andengine.opengl.vbo.VertexBufferObject.bind(VertexBufferObject.java:162) 
    10-16 14:13:23.061: E/AndroidRuntime(4533): at org.andengine.opengl.texture.TextureWarmUpVertexBufferObject.warmup(TextureWarmUpVertexBufferObject.java:97) 
    10-16 14:13:23.061: E/AndroidRuntime(4533): at org.andengine.opengl.texture.TextureManager.updateTextures(TextureManager.java:257) 
    10-16 14:13:23.061: E/AndroidRuntime(4533): at org.andengine.engine.Engine.onDrawFrame(Engine.java:613) 
    10-16 14:13:23.061: E/AndroidRuntime(4533): at org.andengine.opengl.view.EngineRenderer.onDrawFrame(EngineRenderer.java:105) 
    10-16 14:13:23.061: E/AndroidRuntime(4533): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1332) 
    10-16 14:13:23.061: E/AndroidRuntime(4533): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116) 
    10-16 14:13:23.061: E/AndroidRuntime(4533): Caused by: org.andengine.util.exception.AndEngineRuntimeException: Inherently incompatible device detected. 
    10-16 14:13:23.061: E/AndroidRuntime(4533): at org.andengine.opengl.GLES20Fix.<clinit>(GLES20Fix.java:39) 

उत्तर

9

है है stated here by 42labs:

सौभाग्य से इसे ठीक करना बहुत आसान है - अपने स्रोतों रूट (निर्देशिका जहां AndroidManifest.xml है) में बनाना libs नामक एक निर्देशिका जिसमें फिर armeabi नाम की एक निर्देशिका बनाते हैं। अब एंडइंजनेस स्रोत प्राप्त करें ( ओपनजीएल ईएस 2.0 शाखा से) - from here। आप भंडार क्लोन कर सकते हैं या इसे डाउनलोड कर सकते हैं। कोई फर्क नहीं पड़ता।

क्या मायने रखता है कि आपको libsengine.so में libs/armeabi में उपलब्ध libs/armeabi में उपलब्ध होना चाहिए जो आपने अभी अपनी निर्देशिका में बनाई है। मुद्दा :)

शायद यह आधिकारिक समाधान नहीं है ठीक कर देंगे, शायद हम एक टिप्पणी AndEngine के मंचों पर कहीं नहीं देखा है, लेकिन इस विधि 30 सेकंड में समस्या ठीक हो जाती है और किसी अन्य का उत्पादन नहीं करता मुद्दे।

और - यह क्यों दुर्घटनाग्रस्त हो गया? यह क्या ठीक करता है?

यह वास्तव में काफी मजाकिया है। Google डेवलपर्स, जब फियोयो जावा एसडीके तैयार करते हैं, तो कुछ (मानक!) ओपनजीएल ES 2.0 फ़ंक्शंस के जावा संस्करणों को लागू करना भूल गए हैं। इस समस्या का समाधान जेएनआई को पर एसडीके में अनुपलब्ध मूल फ़ंक्शन के लिए कॉल पुल बनाना है। एंडइंजिन ने इस पुल का उल्लेख lib libengengine.so में किया है। जब इंजन लॉन्च किया गया है तो यह ओएस के संस्करण की जांच करता है। यदि यह फियोयो (या निचला) है तो यह लाइब्रेरी लोड करने का प्रयास करता है। यदि पुस्तकालय मौजूद नहीं है तो में इसे हल करने का कोई तरीका नहीं है और उसे क्रैश करना होगा।

संबंधित मुद्दे