0

andeningeを使った小さなゲームで試してみました。WindowsXPシステムで動作します。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

私はandengineを3つの異なるWin7マシンで実行しています。OSが問題だとは思いません。ゲームのアクティビティクラスのコンストラクターを投稿して、問題の原因となっている行を確認できますか?また、GLES2またはGLES1を使用していますか?

==更新==

わかりました-問題は単純です。onLoadEngine関数でエンジンを返していません。nullを返しています。したがって、ゲームを開始しようとすると、nullオブジェクトのメソッドが呼び出されます。つまり、デモゲームには十分な機能が含まれていません。

少なくとも、エンジンとカメラを定義する必要があります。シーンがないとレンダリングされないので、シーンも必要になると思います。

次に、実際に画面に何かを表示するには、onLoadResourcesにいくつかのテクスチャをロードし、onLoadSceneに少なくとも1つのシーンといくつかのスプライトを作成する必要があります。

Andengine Examplesソースをダウンロードし、andengineの「HelloWorld」としてMovingBallExample.javaをチェックすることをお勧めします。その本当に本当に簡単です。

GLバージョンの場合-どちらか一方を使用しています。andengineライブラリには2つの主要なリビジョンがあり、非公式にはGLES1およびGLES2として知られています。最近githubからコードを取得した場合は、GLES2があります。

于 2012-07-25T17:43:31.997 に答える
0

同じバージョンのEclipseを使用していますか?同じバージョンのAndroidSDK?Adt-plugin?APIレベルのバージョン?GLES 2.0?AndEngineの同じバージョン?

すべてのバージョンをチェックし、それらが最後のものであること、および/またはplatform-toolsやadt-pluginのようにそれらの間で互換性があることを確認してください

于 2012-07-25T23:32:50.270 に答える