【问题标题】:solve null pointer exception at 'org.andengine.opengl.texture.ITexture org.andengine.opengl.texture.region.ITextureRegion.getTexture()' [duplicate]解决“org.andengine.opengl.texture.ITexture org.andengine.opengl.texture.region.ITextureRegion.getTexture()”处的空指针异常[重复]
【发布时间】:2019-08-22 05:42:38
【问题描述】:
java.lang.NullPointerException: Attempt to invoke interface method 'org.andengine.opengl.texture.ITexture org.andengine.opengl.texture.region.ITextureRegion.getTexture()' on a null object reference

        at org.andengine.entity.sprite.Sprite.preDraw(Sprite.java:243)
        at org.andengine.entity.Entity.onManagedDraw(Entity.java:1354)
        at org.andengine.entity.Entity.onDraw(Entity.java:1162)
        at org.andengine.entity.Entity.onManagedDraw(Entity.java:1385)
        at org.andengine.entity.Entity.onDraw(Entity.java:1162)
        at org.andengine.entity.Entity.onManagedDraw(Entity.java:1385)
        at org.andengine.entity.scene.Scene.onManagedDraw(Scene.java:260)
        at org.andengine.entity.Entity.onDraw(Entity.java:1162)
        at org.andengine.engine.Engine.onDrawScene(Engine.java:627)
        at org.andengine.engine.Engine.onDrawFrame(Engine.java:617)
        at org.andengine.opengl.view.EngineRenderer.onDrawFrame(EngineRenderer.java:105)

获取空指针异常。没办法解决。

【问题讨论】:

  • 不,它没用
  • 显示产生异常的代码
  • 一些对象将是null。例如。 ITexture
  • @Override protected void preDraw(final GLState pGLState, final Camera pCamera) { super.preDraw(pGLState, pCamera); //////********** 这里出错**********////// this.getTextureRegion().getTexture().bind(pGLState) ;尝试 { }catch (Exception e){} this.mSpriteVertexBufferObject.bind(pGLState, this.mShaderProgram); }
  • 你检查过 Github 库问题吗?

标签: android nullpointerexception andengine


【解决方案1】:

查看第 243 行的 org.andengine.entity.sprite.Sprite.java。其中有一个对 org.andengine.opengl.texture.ITexture org.andengine.opengl.texture.region.ITextureRegion 的引用,它是空的...意味着它还没有被初始化。

如果没有看到实际代码,就无法解释为什么 ITextureRegion 未初始化。

为了让你更好地理解这一点,我推荐阅读What is a NullPointerException, and how do I fix it?

【讨论】:

  • this.getTextureRegion().getTexture().bind(pGLState);在此获取空指针
  • 是的。所以this.getTextureRegion()返回的值为null。如果不访问代码,就不可能确定原因。
猜你喜欢
  • 1970-01-01
  • 2014-02-04
  • 2014-01-06
  • 2014-07-28
  • 2016-04-28
  • 1970-01-01
相关资源
最近更新 更多