NetBeans IDE を使用して、LibGDX を使用するアプリケーションを Andriod で実行しようとしています。しかし、何らかの理由でゲームがクラッシュし、アプリケーションを実行しようとすると「このアプリケーションは動作を停止しました」というメッセージが表示されました。PC ではすべてがうまく機能するので、どうやら Android のセットアップで何かを見逃しているようです。NetBeans での Android プロジェクトのセットアップは文書化された領域ではなく、Eclipse では状況が異なるようです。
誰かが Netbeans でプロジェクトをセットアップして LibGDX を android で実行できた場合は、実行した手順を共有してください。
いくつかのコード、私はそれが助けになるとは思わない:
public class Game extends AndroidApplication {
public void onCreate (android.os.Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initialize((ApplicationListener) new game.GameSystem(new Size2i(100, 100)), false);
}
}
私が得るデバッグ出力は次のとおりです。
D/dalvikvm( 478): Trying to load lib /data/data/com.RPGGame/lib/libgdx.so 0x40515708
D/dalvikvm( 478): Added shared lib /data/data/com.RPGGame/lib/libgdx.so 0x40515708
D/dalvikvm( 478): No JNI_OnLoad found in /data/data/com.RPGGame/lib/libgdx.so 0x40515708, skipping init
D/AndroidRuntime( 478): Shutting down VM
W/dalvikvm( 478): threadid=1: thread exiting with uncaught exception (group=0x40015560)
E/AndroidRuntime( 478): FATAL EXCEPTION: main
E/AndroidRuntime( 478): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.RPGGame/com.RPGGame.MainActivity}: java.lang.ClassCastException: game.GameSystem
E/AndroidRuntime( 478): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
E/AndroidRuntime( 478): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
E/AndroidRuntime( 478): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
E/AndroidRuntime( 478): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
E/AndroidRuntime( 478): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 478): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 478): at android.app.ActivityThread.main(ActivityThread.java:3683)
E/AndroidRuntime( 478): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 478): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime( 478): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime( 478): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime( 478): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 478): Caused by: java.lang.ClassCastException: game.GameSystem
E/AndroidRuntime( 478): at com.RPGGame.MainActivity.onCreate(MainActivity.java:11)
E/AndroidRuntime( 478): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime( 478): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
E/AndroidRuntime( 478): ... 11 more
W/ActivityManager( 104): Force finishing activity com.RPGGame/.MainActivity
W/ActivityManager( 104): Activity pause timeout for HistoryRecord{40512238 com.RPGGame/.MainActivity}
D/dalvikvm( 408): GC_EXPLICIT freed 8K, 54% free 2537K/5511K, external 1625K/2137K, paused 102ms
W/ActivityManager( 104): Activity destroy timeout for HistoryRecord{40512238 com.RPGGame/.MainActivity}
D/dalvikvm( 420): GC_EXPLICIT freed 324K, 55% free 2532K/5511K, external 1625K/2137K, paused 183ms
D/dalvikvm( 322): GC_EXPLICIT freed 9K, 55% free 2589K/5703K, external 1625K/2137K, paused 72ms
したがって、基本的にgame.GameSystemをApplicationListenerにキャストできません。GameSystem が ApplicationListener を実装している場合でも。
GameSystem は PC で意図したとおりに動作します。Andriod プロジェクトで私が行ったのは、そのコードをメイン ファイルに入れることだけでした。