我正在尝试编译以下项目:https://github.com/pplante/droidtowers (12月02日的版本,这是最后一个有效的版本)。我设法获得所有依赖项等,它在eclipse和IntelliJ-IDEA(这是原始项目)下编译。但是,在eclipse下运行时,此行会出现以下错误:
Array<GridObject> rooms = new Array<GridObject>(gameGrid.getInstancesOf(Room.class).items);
这会在新游戏开始后通过主菜单崩溃游戏。
现在,我知道Room类扩展了GridObject,这在IntelliJ下运行良好。我无法解决可能存在的问题或两个可执行文件之间的差异,因此欢迎任何帮助。也许IDEA项目中的编译器覆盖有一个默认值? (我从零开始制作了eclipse项目。)
这是使用最新的Java和android sdk。
ADDENDUM:这是完整的堆栈跟踪:
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)
答案 0 :(得分:0)
好吧,不能说我“修复”错误(显然这只是泛型工作的方式或者其他东西)但是我删除了“.items”并且它有效,因为它是多余的:它基本上是一个函数返回Array&lt; GridObject&gt;,它将它转换为数组GridObject [],然后使用构造函数将其转换回类型Array&lt; GridObject&gt ;.
现在最大的问题是为什么IDEA根本没有返回错误。可能是一些模糊的编译器设置。