AndEngineRuntimeException: Incompatible device detection detected.

I get an error like this on my phone, when I run my AndEngine program it starts up successfully on my frnds phone, but when I tried to start, I get an error as an incompatible device was found ...

my logarithm is below

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) 
+6
source share
1 answer

As indicated here 42labs :

Fortunately, this is very easy to fix - in the root sources (the directory where AndroidManifest.xml is), create a directory called libs, inside which then create a directory called armeabi. Now get AndEnginesources (from OpenGL ES 2.0) - from here . You can clone the repository or download it. Irrelevant.

The important thing is that you must copy libandengine.so to libs / armeabi to the libs / armeabi that you just created in your directory. To solve a problem:)

Perhaps this is not an official solution, perhaps we have not seen notice somewhere on the AndEngines forums, but this method fixes the problem in 30 seconds and does not cause any other problems.

And - Why did this happen? What does he fix?

This is pretty funny. Google developers, while preparing the Froyo Java SDK, forgot to implement Java versions of some (standard!) OpenGL ES 2.0 features. The solution to this problem is to use JNI to create a call bridge to a native function that is not in the SDK. AndEngine has this bridge in the mentioned libandengine.so. When the engine starts, it checks the OS version. If it's Froyo (or lower), it tries to load the library. If the library is missing, there is no way to resolve this and should fail.

+9
source

Source: https://habr.com/ru/post/927822/


All Articles