0xdeadbaad(代码=1)错误处的致命信号 11(SIGSEGV) [英] Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1) error
问题描述
我正在使用类似 FruitNinja 的 andengine 在 android 中进行游戏项目,在该项目中我使用从下到上抛出图像项目工作正常,但有时会出错我使用了 System.gc() 但没有帮助
i am on a game project in android with andengine like FruitNinja in which i am using to throw images from bottom to top project is working fine but giving error this sometimes i used System.gc() but not helpful
致命信号 11 (SIGSEGV) 在 0xdeadbaad (code=1)
Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)
我的代码是
private void throwHardware(final float pX, final float pY) {
final FixtureDef boxFixtureDef = PhysicsFactory.createFixtureDef(0.1f,
0.5f, 0.5f);
boxFixtureDef.filter.categoryBits = 0x0002;
boxFixtureDef.filter.maskBits = 0x0004;
boxFixtureDef.filter.groupIndex = 2;
Random rng = new Random();
generated1 = new ArrayList<Integer>();
r = rng.nextInt(8);
Log.e(Integer.toString(r), "r");
if (r == 0) {
Hardware = new Sprite(pX, pY, java,
this.getVertexBufferObjectManager());
body = PhysicsFactory.createBoxBody(this.mPhysicsWorldg, Hardware,
BodyType.DynamicBody, boxFixtureDef);
mHardware[active] = new Sprite(pX, pY, java,
this.getVertexBufferObjectManager()) {
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float X, float Y) {
if (pSceneTouchEvent.isActionDown()) {
if (a == 0) {
score();
remove();
question();
} else {
remove();
wrong();
question();
}
return true;
}
return true;
};
};
} else if (r == 1) {
Hardware = new Sprite(pX, pY, facebook,
this.getVertexBufferObjectManager());
body = PhysicsFactory.createBoxBody(this.mPhysicsWorldg, Hardware,
BodyType.DynamicBody, boxFixtureDef);
mHardware[active] = new Sprite(pX, pY, this.facebook,
this.getVertexBufferObjectManager()) {
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float X, float Y) {
if (pSceneTouchEvent.isActionDown()) {
if (a == 1) {
score();
remove();
question();
} else {
remove();
wrong();
question();
}
return true;
}
return true;
};
};
} else if (r == 2) {
Hardware = new Sprite(pX, pY, android,
this.getVertexBufferObjectManager());
body = PhysicsFactory.createBoxBody(this.mPhysicsWorldg, Hardware,
BodyType.DynamicBody, boxFixtureDef);
mHardware[active] = new Sprite(pX, pY, android,
this.getVertexBufferObjectManager()) {
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float X, float Y) {
if (pSceneTouchEvent.isActionDown()) {
if (a == 2) {
score();
remove();
question();
} else {
remove();
wrong();
question();
}
return true;
}
return true;
};
};
} else if (r == 3) {
Hardware = new Sprite(pX, pY, usb,
this.getVertexBufferObjectManager());
body = PhysicsFactory.createBoxBody(this.mPhysicsWorldg, Hardware,
BodyType.DynamicBody, boxFixtureDef);
mHardware[active] = new Sprite(pX, pY, usb,
this.getVertexBufferObjectManager()) {
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float X, float Y) {
if (pSceneTouchEvent.isActionDown()) {
if (a == 3) {
score();
remove();
question();
} else {
remove();
wrong();
question();
}
return true;
}
return true;
};
};
} else if (r == 4) {
Hardware = new Sprite(pX, pY, google,
this.getVertexBufferObjectManager());
body = PhysicsFactory.createBoxBody(this.mPhysicsWorldg, Hardware,
BodyType.DynamicBody, boxFixtureDef);
mHardware[active] = new Sprite(pX, pY, google,
this.getVertexBufferObjectManager()) {
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float X, float Y) {
if (pSceneTouchEvent.isActionDown()) {
if (a == 4) {
score();
remove();
question();
} else {
remove();
question();
wrong();
}
return true;
}
return true;
};
};
} else if (r == 5) {
Hardware = new Sprite(pX, pY, ram,
this.getVertexBufferObjectManager());
body = PhysicsFactory.createBoxBody(this.mPhysicsWorldg, Hardware,
BodyType.DynamicBody, boxFixtureDef);
mHardware[active] = new Sprite(pX, pY, ram,
this.getVertexBufferObjectManager()) {
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float X, float Y) {
if (pSceneTouchEvent.isActionDown()) {
if (a == 5) {
score();
remove();
question();
} else {
remove();
question();
wrong();
}
return true;
}
return true;
};
};
} else if (r == 6) {
Hardware = new Sprite(pX, pY, cd,
this.getVertexBufferObjectManager());
body = PhysicsFactory.createBoxBody(this.mPhysicsWorldg, Hardware,
BodyType.DynamicBody, boxFixtureDef);
mHardware[active] = new Sprite(pX, pY, cd,
this.getVertexBufferObjectManager()) {
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float X, float Y) {
if (pSceneTouchEvent.isActionDown()) {
if (a == 6) {
score();
remove();
question();
} else {
remove();
wrong();
question();
}
return true;
}
return true;
}
};
} else if (r == 7) {
Hardware = new Sprite(pX, pY, samsung,
this.getVertexBufferObjectManager());
body = PhysicsFactory.createBoxBody(this.mPhysicsWorldg, Hardware,
BodyType.DynamicBody, boxFixtureDef);
mHardware[active] = new Sprite(pX, pY, samsung,
this.getVertexBufferObjectManager()) {
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float X, float Y) {
if (pSceneTouchEvent.isActionDown()) {
if (a == 7) {
score();
remove();
question();
} else {
remove();
wrong();
question();
}
return true;
}
return true;
};
};
}
mHardwareBody[active] = PhysicsFactory.createBoxBody(
this.mPhysicsWorldg, mHardware[active], BodyType.DynamicBody,
boxFixtureDef);
scene.attachChild(mHardware[active]);
this.mPhysicsWorldg.registerPhysicsConnector(new PhysicsConnector(
mHardware[active], mHardwareBody[active], true, false));
Vector2 velocity = Vector2Pool.obtain(-1, -16);
body.setTransform(velocity, 85);
mHardwareBody[active].setLinearVelocity(velocity);
Vector2Pool.recycle(velocity);
this.scene.registerTouchArea(mHardware[active]);
}
推荐答案
某些内容已损坏或未初始化.0xdeadbaad
看起来像 0xdeadbeef
或 0xbaadf00d
等调试/哨兵地址之一.
Something's corrupted or uninitialised. 0xdeadbaad
looks like one of those debugging/sentinel addresses like 0xdeadbeef
or 0xbaadf00d
.
您可能想要研究的是堆损坏.根据维基百科HexSpeak页面:
Something you may want to look into is heap corruption. According to the Wikipedia HexSpeak page:
0xDEADBAAD
(dead bad")在检测到本机堆损坏时由 Android libc abort() 函数使用.
0xDEADBAAD
("dead bad") is used by the Android libc abort() function when native heap corruption is detected.
您的问题中没有足够的信息来提供解决此类问题的具体指导,假设这是由他们的代码(或您的代码间接通过他们的代码)引起的,可能值得联系 AndEngine 团队以了解他们的想法).
There's not really enough information in your question to give specific guidanve for fixing such a problem, it may be worth contacting the AndEngine bods to see what they think, assuming it's something being caused by their code (or your code indirectly through theirs).
这篇关于0xdeadbaad(代码=1)错误处的致命信号 11(SIGSEGV)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!