0

我尝试了使用 andeninge 的小游戏。它在 Window XP 系统中工作。如果我使用 andeninge 导入或创建新项目,则相同的项目会出现运行时错误,例如

07-25 17:34:43.854: E/AndroidRuntime(280): FATAL EXCEPTION: main
07-25 17:34:43.854: E/AndroidRuntime(280): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.m2f/com.m2f.AndengineActivity}: java.lang.NullPointerException
07-25 17:34:43.854: E/AndroidRuntime(280):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
07-25 17:34:43.854: E/AndroidRuntime(280):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
07-25 17:34:43.854: E/AndroidRuntime(280):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
07-25 17:34:43.854: E/AndroidRuntime(280):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
07-25 17:34:43.854: E/AndroidRuntime(280):  at android.os.Handler.dispatchMessage(Handler.java:99)
07-25 17:34:43.854: E/AndroidRuntime(280):  at android.os.Looper.loop(Looper.java:123)
07-25 17:34:43.854: E/AndroidRuntime(280):  at android.app.ActivityThread.main(ActivityThread.java:4627)
07-25 17:34:43.854: E/AndroidRuntime(280):  at java.lang.reflect.Method.invokeNative(Native Method)
07-25 17:34:43.854: E/AndroidRuntime(280):  at java.lang.reflect.Method.invoke(Method.java:521)
07-25 17:34:43.854: E/AndroidRuntime(280):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
07-25 17:34:43.854: E/AndroidRuntime(280):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
07-25 17:34:43.854: E/AndroidRuntime(280):  at dalvik.system.NativeStart.main(Native Method)
07-25 17:34:43.854: E/AndroidRuntime(280): Caused by: java.lang.NullPointerException
07-25 17:34:43.854: E/AndroidRuntime(280):  at org.anddev.andengine.ui.activity.BaseGameActivity.onCreate(BaseGameActivity.java:50)
07-25 17:34:43.854: E/AndroidRuntime(280):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-25 17:34:43.854: E/AndroidRuntime(280):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

示例代码:

public class DemoGame1 extends BaseGameActivity {

@Override
public void onLoadComplete() {
    // TODO Auto-generated method stub

}

@Override
public Engine onLoadEngine() {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void onLoadResources() {
    // TODO Auto-generated method stub

}

@Override
public Scene onLoadScene() {
    // TODO Auto-generated method stub
    return null;
}

}

但 android 应用程序运行良好(其打印 HelloWorld)。

4

2 回答 2

1

我在 3 台不同的 Win7 机器上运行 andengine。我认为操作系统不是问题。您能否发布您的游戏活动类的构造函数,以便我们可以看到是哪一行导致了麻烦?另外——你使用的是 GLES2 还是 GLES1?

== 更新 ==

好的 - 问题很简单。您没有在 onLoadEngine 函数中返回引擎。您正在返回 null。因此,当游戏尝试启动时,它会调用空对象的方法。简而言之 - 您的演示游戏内容不足,无法正常工作。

至少你必须定义一个引擎和一个相机。我希望您还需要一个场景,因为没有它就不会渲染任何东西。

然后要真正在屏幕上看到某些东西,您需要在 onLoadResources 中加载一些纹理,并在 onLoadScene 中创建至少一个场景和一些精灵。

我建议下载 Andengine 示例源,并查看 MovingBallExample.java 作为 andengine 的“Hello World”。它真的很简单。

至于 GL 版本 - 您正在使用其中一个。andengine 库有两个主要修订版,非正式地称为 GLES1 和 GLES2。如果你最近从 github 获得了代码,那么你有 GLES2。

于 2012-07-25T17:43:31.997 回答
0

你用的是同一个版本的eclipse吗?同版本的android SDK?Adt-plugin? 版本的 API 级别?GLES 2.0?相同版本的AndEngine?

检查所有内容的版本并确保它们是最后的版本和/或它们之间的兼容性,如平台工具和广告插件

于 2012-07-25T23:32:50.270 回答