我在一些论坛上搜索过,这似乎是一个常见的问题。但是,我无法找到解决方案。我没有做任何疯狂的事情,所以似乎只会发生这种情况。
@Override
protected Scene onCreateScene() {
Scene s = new Scene();
PhysicsWorld mWorld=new PhysicsWorld(new Vector2(0, SensorManager.GRAVITY_EARTH),true);
s.registerUpdateHandler(mWorld);
final Sprite eliSprite = new Sprite(400, 240, james_walking[3], getVertexBufferObjectManager());
eliSprite.setScale(0.5f);
s.attachChild(eliSprite);
s.setTouchAreaBindingOnActionDownEnabled(true);
return s;
}
我没有更多的话要说,因为我对Andengine不太了解,所以假人的解释会被贬低。 在添加了你所说的错误之后,然而PhysicsWorld仍然无法工作。 logcat说
02-27 17:07:51.153 2590-2639/com.company.m.appname D/dalvikvm﹕ No JNI_OnLoad found in /data/data/com.company.m.appname/lib/libandenginephysicsbox2dextension.so 0x41cdce70, skipping init
答案 0 :(得分:8)
APK中可能缺少原生库(来自lib目录的.so文件)。检查项目设置/构建配置。
如果您正在使用android studio,则必须在build.gradle中修改andEngine和andEnginePhysicsBox2DExtension的sourceSet。
在项目中有一个文件夹,其中有文件,你需要包含本地库。
在此处查看我的答案:jniLibs are not extended in gradle
根据您的评论进行更新:
将此添加到andEngine,andEnginePhysicsBox2d以及您的游戏build.gradle:
sourceSets {
main {
jni.srcDirs = []
jniLibs.srcDir 'libs'
}
}
还要将此添加到defaultConfig部分,对于andEngine:
ndk {
moduleName "andEngine"
}
和forEnginePhysicsBox2d:
ndk {
moduleName "andEnginePhysicsBox2dExtension"
}