实施加速度计(Andengine)时出现问题

时间:2011-07-27 06:48:52

标签: android andengine

我正在尝试使用Accelerometer在我的游戏中实施Andengine,我还添加了andenginephysicsbox2dextension.jar

private PhysicsWorld mPhysicsWorld;

//--OnLoadScene()

this.mPhysicsWorld = new PhysicsWorld(new Vector2(0, SensorManager.GRAVITY_EARTH), false);

当我执行此行时,我收到错误而无法运行。

如何解决此错误?

Logcat错误:

07-27 13:57:21.125: ERROR/AndroidRuntime(1006): FATAL EXCEPTION: main
07-27 13:57:21.125: ERROR/AndroidRuntime(1006): java.lang.ExceptionInInitializerError
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at Org.Demo.PixelPerfectTest.onLoadScene(PixelPerfectTest.java:223)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at org.anddev.andengine.ui.activity.BaseGameActivity.doResume(BaseGameActivity.java:158)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at org.anddev.andengine.ui.activity.BaseGameActivity.onWindowFocusChanged(BaseGameActivity.java:82)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at com.android.internal.policy.impl.PhoneWindow$DecorView.onWindowFocusChanged(PhoneWindow.java:2152)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at android.view.View.dispatchWindowFocusChanged(View.java:4691)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:752)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at android.view.ViewRoot.handleMessage(ViewRoot.java:2102)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at android.os.Looper.loop(Looper.java:132)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at android.app.ActivityThread.main(ActivityThread.java:4025)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at java.lang.reflect.Method.invokeNative(Native Method)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at java.lang.reflect.Method.invoke(Method.java:491)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at dalvik.system.NativeStart.main(Native Method)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load andenginephysicsbox2dextension: findLibrary returned null
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at java.lang.Runtime.loadLibrary(Runtime.java:425)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at java.lang.System.loadLibrary(System.java:554)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     at org.anddev.andengine.extension.physics.box2d.PhysicsWorld.<clinit>(PhysicsWorld.java:30)
07-27 13:57:21.125: ERROR/AndroidRuntime(1006):     ... 15 more

4 个答案:

答案 0 :(得分:4)

您必须在libs中包含.so文件并通过Project Properties添加.jar文件。 这两个.so文件有两个版本(arneabu和armeabi-v7a)...我不知道 这是更新的。将它们放在库中并确保刷新构建路径。

然后,如果您还没有这样做,请确保包含相关的.jar文件 在Eclipse中提取项目属性。然后,不加载Eclipse(我必须 杀死这个浏览器,以避免这个POS笔记本电脑太多了),我99%肯定 它位于Build Path下,您将看到“添加外部JAR”的选项。选择那个,然后 添加必要的jar文件。

显然,基于我读过的一个帖子,忘记.so库是有点的 常见的错误(我也是一个错误!)。

现在,如果你的应用是动态壁纸,那么任何AndEngine物理都会遇到问题。 我已经阅读了 LOT 关于有问题的人发帖,寻找错误修复, 等等。

我现在在AndEngine论坛上有一个关于这个问题的未解决的问题。一世 在我的物理学中无法获得任何触摸事件或加速计在所有工作 和基于物理的(物理/化学:Buckyballs(buckminsterfullerenes),和物理代码 AndEngine)LWP应用程序。我基本上碰到了一堵砖墙 没有意义继续前进(和 IF )我得到了对最新更新的回复 我补充说....

希望这会有所帮助......

后来,
 --Jim

答案 1 :(得分:2)

请注意以下这一行:

07-27 13:57:21.125: ERROR/AndroidRuntime(1006): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load andenginephysicsbox2dextension: findLibrary returned null

验证您的构建路径设置,也许您忽略了所需的库/扩展?根据您提供的信息,并考虑到我没有使用该库。也许您需要将the Physics Box2D Extension添加到构建路径。

问候。

答案 2 :(得分:0)

GTBrewer。    只需在physicsbox2d项目中构建本机库。然后cp -r ./libs从物理项目到动态壁纸项目。刷新,project->clean然后构建。中提琴!

答案 3 :(得分:0)

由于您的项目忽略.so文件。 你可以在这里按照我的答案https://stackoverflow.com/a/34068202/2026280

非常简单。按照这个简单的步骤

1)主应用的libs文件夹中创建一个名为“lib”的新文件夹。

2)和EnginePhysicsBox2DExtension / libs 文件夹中复制所有文件夹ie.armabi,armabi-v7a等,然后粘贴到之前创建的“lib”中主应用中的文件夹。

3)现在将“lib”文件夹压缩为“lib.zip”并将其重命名为“lib.jar “即可。 这会将 zip 扩展名更改为 jar

4)最后在 Build.gradle 文件中的依赖项{}下添加一行 - 编译文件('lib.jar')您的主要应用

5)清理并构建项目。