0

この方法で実装された Screen という抽象クラスがあります....

public abstract class Screen {
    protected final Game game;

    public Screen(Game game) {
    this.game = game;
    }

    public abstract void update(float deltaTime);
    public abstract void present(float deltaTime);
    public abstract void pause();
    public abstract void resume();
    public abstract void dispose();
}

および Screen クラスを拡張するクラス

public class LoadingScreen extends Screen {

    public LoadingScreen(Game game) {
        super(game);
    }


    @Override
    public void update(float deltaTime) {


    }

    @Override
    public void present(float deltaTime) {
        // TODO Auto-generated method stub

    }

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

    }

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

    }

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

    }

}

しかし、プロジェクトを実行しようとすると、次のログが表示されました。

04-07 03:01:09.603: E/AndroidRuntime(1107): FATAL EXCEPTION: main
04-07 03:01:09.603: E/AndroidRuntime(1107): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobi.classic.snake/com.mobi.classic.snake.LoadingScreen}: java.lang.InstantiationException: com.mobi.classic.snake.LoadingScreen
04-07 03:01:09.603: E/AndroidRuntime(1107):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at android.os.Looper.loop(Looper.java:123)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at android.app.ActivityThread.main(ActivityThread.java:4627)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at java.lang.reflect.Method.invokeNative(Native Method)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at java.lang.reflect.Method.invoke(Method.java:521)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at dalvik.system.NativeStart.main(Native Method)
04-07 03:01:09.603: E/AndroidRuntime(1107): Caused by: java.lang.InstantiationException: com.mobi.classic.snake.LoadingScreen
04-07 03:01:09.603: E/AndroidRuntime(1107):     at java.lang.Class.newInstanceImpl(Native Method)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at java.lang.Class.newInstance(Class.java:1429)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
04-07 03:01:09.603: E/AndroidRuntime(1107):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
04-07 03:01:09.603: E/AndroidRuntime(1107):     ... 11 more

私はAndroidゲームプログラミングが初めてで、何が問題なのかまったくわかりません。すでに問題をグーグルで検索し、ここで同様の質問を見ましたが、答えが得られませんでした. 助けてください...

4

2 に答える 2

1

あなたはメインクラスとしてLoginScreenを持っているので、あなたがする必要があります

一部の Activity クラスを拡張します。

class LoginScreen extends Activity
{
   onCreate(....)
   {
    new ABC();
   super(..);
   }

    class ABC extends Screen
    {
     // your code goes here...
    }
}
于 2012-04-07T21:23:08.207 に答える
1

LoadingScreenクラスをアクティビティとして使用しようとしているようですが、そうではありません。アクティビティ (またはから拡張Activityされたクラス) のみを使用できます。hello world のサンプルを確認してください。

于 2012-04-07T16:01:14.867 に答える