无法在Windows 7中运行andengine

问题描述:

我尝试使用andeninge进行小游戏。它在Window XP系统中工作。同一个项目,如果我导入或使用andeninge我得到的运行时间错误,如无法在Windows 7中运行andengine

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 )。

我有一个运行在3个不同的Win7机器上的andengine。我不认为操作系统是问题。你可以发布你的游戏Activity类的构造函数吗,这样我们就可以看到问题的原因是什么?另外 - 你使用GLES2还是GLES1?

==更新==

好的 - 问题很简单。您不会在onLoadEngine函数中返回引擎。你正在返回null。所以当游戏试图启动它时,会调用一个空对象的方法。总之 - 你的演示游戏并不足以工作。

至少你必须定义一个引擎和一个摄像头。我希望你也会需要一个场景,因为没有它就不会呈现任何东西。

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

我推荐下载Andengine Examples源代码,并查看MovingBallExample.java作为引擎的“Hello World”。它非常简单。

对于GL版本,您正在使用其中一种。这个引擎库有两个主要版本,非正式地被称为GLES1和GLES2。如果你最近从github获得代码,你有GLES2。

+0

没有使用任何的Open GL .. – JohnRaja 2012-07-26 07:23:25

+0

感谢您的更新:我的回复在上面编辑。 – 2012-07-26 21:00:49

+0

谢谢..解决这个问题 – JohnRaja 2012-07-27 04:46:12

您使用的是相同版本的eclipse吗? Android SDK的相同版本? API级别的Adt-plugin?版本? GLES 2.0?同一版本的AndEngine?

检查所有的版本,并确保他们是最后的和/或它们之间兼容的平台状的工具和ADT-插件