ExceptionInInitializerError 物理世界
ExceptionInInitializerError Physics World
我在很多论坛上搜索了一下,这似乎是一个常见的问题。但是我找不到解决方案。我没有做任何疯狂的事情,所以发生这种情况似乎很奇怪。
@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
可能是您的 APK 中缺少本机库(lib 目录中的 .so 文件)。检查您的项目设置/构建配置。
如果您使用的是android studio,则必须修改build.gradle中andEngine和andEnginePhysicsBox2DExtension的sourceSet。
您在该项目中有一个文件夹,其中包含 so 文件,您需要从那里包含本机库。
在这里查看我的回答:
根据您的评论更新:
将其添加到 andEngine、andEnginePhysicsBox2d 和您的游戏中 build.gradle:
sourceSets {
main {
jni.srcDirs = []
jniLibs.srcDir 'libs'
}
}
还将此添加到 defaultConfig 部分,用于和引擎:
ndk {
moduleName "andEngine"
}
andEnginePhysicsBox2d:
ndk {
moduleName "andEnginePhysicsBox2dExtension"
}
我在很多论坛上搜索了一下,这似乎是一个常见的问题。但是我找不到解决方案。我没有做任何疯狂的事情,所以发生这种情况似乎很奇怪。
@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
可能是您的 APK 中缺少本机库(lib 目录中的 .so 文件)。检查您的项目设置/构建配置。
如果您使用的是android studio,则必须修改build.gradle中andEngine和andEnginePhysicsBox2DExtension的sourceSet。
您在该项目中有一个文件夹,其中包含 so 文件,您需要从那里包含本机库。
在这里查看我的回答:
根据您的评论更新:
将其添加到 andEngine、andEnginePhysicsBox2d 和您的游戏中 build.gradle:
sourceSets {
main {
jni.srcDirs = []
jniLibs.srcDir 'libs'
}
}
还将此添加到 defaultConfig 部分,用于和引擎:
ndk {
moduleName "andEngine"
}
andEnginePhysicsBox2d:
ndk {
moduleName "andEnginePhysicsBox2dExtension"
}