【问题标题】:AndEngineRuntimeException: Inherently incompatible device detected.AndEngineRuntimeException:检测到固有不兼容的设备。
【发布时间】:2012-10-06 07:57:48
【问题描述】:

当我运行我的 AndEngine 程序时,我的手机上出现这样的错误 它已在我的 frnds 手机上成功运行,但是当我尝试运行时出现错误,例如检测到 Inherently incompatible device...

我的 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)

【问题讨论】:

    标签: android andengine


    【解决方案1】:

    就像stated here by 42labs:

    幸运的是,它很容易修复 - 在您的源根目录(目录 AndroidManifest.xml 所在的位置)创建一个名为 libs 的目录,其中 然后创建一个名为 armeabi 的目录。现在获取 AndEnginesources(来自 OpenGL ES 2.0 分支)-from here。您可以克隆存储库 或下载它。没关系。

    重要的是您应该将 libs/armeabi 中可用的 libandengine.so 复制到您刚刚创建的 libs/armeabi 你的目录。将解决问题:)

    可能这不是官方的解决方案,也许我们还没有看到 请注意 AndEngine 论坛上的某处,但此方法修复了 30 秒内出问题,不会产生任何其他问题。

    而且 - 为什么它会崩溃?它解决了什么问题?

    其实挺有趣的。 Google 开发人员在准备 Froyo 时 Java SDK,忘记实现一些(标准!)的Java版本 OpenGL ES 2.0 函数。这个问题的解决方法是使用JNI 创建到 SDK 中缺少的本机函数的调用桥。 AndEngine 在提到的 libandengine.so 中有这个桥。当。。。的时候 引擎启动它检查操作系统的版本。如果是 Froyo(或 较低)它尝试加载库。如果图书馆不存在 没有办法解决这个问题,必须崩溃。

    【讨论】:

      猜你喜欢
      • 2013-04-05
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-02
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多