2013-08-02 75 views
0

我試圖編譯以下項目:https://github.com/pplante/droidtowers (在12月02日的版本,這是最後一個工程)。我設法得到所有的依賴等,它在eclipse和IntelliJ-IDEA(這是最初的項目)下編譯。然而,在Eclipse中運行時,會出現在這條線以下錯誤:錯誤ClassCastException:[Ljava.lang.Object;不能轉換爲[Lcom.happydroids.droidtowers.entities.GridObject;

Array<GridObject> rooms = new Array<GridObject>(gameGrid.getInstancesOf(Room.class).items); 

這導致遊戲崩潰了新的遊戲開始後,過去的主菜單。

現在,我知道,客房類擴展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) 
+0

如果您發佈的堆棧跟蹤,這將是巨大的。 –

+0

我添加了stacktrace(不知道我是否應該添加一個提及它的評論)。 無論如何,我在這裏虧本...如果我設置陣列 x = ...它工作正常。此外,.items返回一個類型爲GridObject []的對象(因此,是一個常規數組),Array 的構造函數需要該類型的對象。爲什麼我會得到轉場異常?另外,此時的數組包含16個空值。 – neutromancer

回答

0

嗯,也不能說我「固定」的錯誤(顯然這只是仿製藥的工作方式或某事),但我刪除「.items」,它的工作,因爲它是多餘的:它基本上採取返回陣列<GridObject>的函數,它被其轉換爲一個數組GridObject [],然後使用構造以將其轉換回型陣列<GridObject>。

最大的謎,現在就是爲什麼IDEA沒有返回一個錯誤都沒有。可能是一些模糊的編譯器設置。

相關問題