次のプロジェクトをコンパイルしようとしています: https://github.com/pplante/droidtowers (動作する最後のバージョンである 12 月 2 日バージョン)。すべての依存関係などを取得することができ、Eclipse と IntelliJ-IDEA (元のプロジェクト) の両方でコンパイルされます。ただし、Eclipse で実行すると、次のエラーがこの行に表示されます。
Array<GridObject> rooms = new Array<GridObject>(gameGrid.getInstancesOf(Room.class).items);
これにより、新しいゲームが開始された後、メイン メニューを過ぎてゲームがクラッシュします。
これで、Room クラスが GridObject を拡張し、これが IntelliJ で正常に動作することがわかりました。問題の原因や両方の実行可能ファイルの違いについて頭を悩ませることはできないので、どんな助けも大歓迎です。IDEA プロジェクトでオーバーライドされたコンパイラにデフォルトがあるのではないでしょうか? (Eclipseプロジェクトをゼロから作成しました)。
これは最新の Java と android SDK を使用しています。
補遺: 完全なスタック トレースは次のとおりです。
ago 05, 2013 3:14:57 PM com.happydroids.platform.DesktopUncaughtExceptionHandler uncaughtException
SEVERE: Uncaught exception!
com.badlogic.gdx.utils.GdxRuntimeException: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lcom.happydroids.droidtowers.entities.GridObject;
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:111)
Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lcom.happydroids.droidtowers.entities.GridObject;
at com.happydroids.droidtowers.controllers.AvatarLayer.setupInitialAvatars(AvatarLayer.java:191)
at com.happydroids.droidtowers.scenes.TowerScene.create(TowerScene.java:145)
at com.happydroids.droidtowers.scenes.components.SceneManager.pushScene(SceneManager.java:39)
at com.happydroids.droidtowers.scenes.components.SceneManager.changeScene(SceneManager.java:26)
at com.happydroids.droidtowers.scenes.LoadTowerSplashScene.render(LoadTowerSplashScene.java:29)
at com.happydroids.droidtowers.DroidTowersGame.render(DroidTowersGame.java:216)
at com.happydroids.droidtowers.LwjglApplicationShim.render(LwjglApplicationShim.java:50)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:190)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:108)
com.badlogic.gdx.utils.GdxRuntimeException: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lcom.happydroids.droidtowers.entities.GridObject;
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:111)
Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lcom.happydroids.droidtowers.entities.GridObject;
at com.happydroids.droidtowers.controllers.AvatarLayer.setupInitialAvatars(AvatarLayer.java:191)
at com.happydroids.droidtowers.scenes.TowerScene.create(TowerScene.java:145)
at com.happydroids.droidtowers.scenes.components.SceneManager.pushScene(SceneManager.java:39)
at com.happydroids.droidtowers.scenes.components.SceneManager.changeScene(SceneManager.java:26)
at com.happydroids.droidtowers.scenes.LoadTowerSplashScene.render(LoadTowerSplashScene.java:29)
at com.happydroids.droidtowers.DroidTowersGame.render(DroidTowersGame.java:216)
at com.happydroids.droidtowers.LwjglApplicationShim.render(LwjglApplicationShim.java:50)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:190)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:108)