2011-10-03 158 views
0

我試圖通過解析plist文件在Android中使用plist解析器從這裏加載hashmap:https://github.com/ZhouWeikuan/cocos2d。 這在過去一直很好,但是最近我的程序在使用這個hashmap(解析後)時已經出現空指針異常。 當我嘗試調試時,eclipse開始變得奇怪。解析器返回hashmap,我可以在變量視圖中查看它的值。當我跨越分配給'worldMap'的線時,eclipse掛起。當試圖在調試模式下看到worldMap的值時,我可以看到一個空行但沒有值 - 最終eclipse崩潰。HashMap崩潰eclipse

Map worlds = (Map)getWorlds().get("Worlds"); 
Map worldMap = (Map)worlds.get(String.valueOf(world)); 
Map levels = (Map)worldMap.get("Levels"); 

但是,當正常運行程序時,會出現空指針異常,以後再通過這些行。 另外,當我試圖調試時,它不會總是在同一個位置崩潰,所以我很難找到這個bug的來源...

有沒有人知道最新怎麼回事?

回答

0

無法確定發生了什麼,但NullPointerException肯定是一個很大的提示。

中加入某些null檢查在上面的例子中的每一行代碼後,我敢打賭,你將能夠非常快追查錯誤:

Map whatEverThisIs = (Map)getWorlds(); 
if (whatEverThisIs == null) { 
    /* Do something here */ 
} 
Map worlds = (Map)whatEverThisIs.get("Worlds"); 
if (worlds == null) { 
    /* Do something here */ 
} 
Map worldMap = (Map)worlds.get(String.valueOf(world)); 
if (worldMap == null) { 
    /* Do something here */ 
} 
Map levels = (Map)worldMap.get("Levels"); 
if (levels == null) { 
    /* Do something here */ 
} 
+0

好,他媽的。在提出問題之前,我想我已經加倍檢查了一切。當所有的鍵都是字符串時,我正在執行* map * .get(* integervalue *)... – kuxi

+0

太棒了,很高興你把它搞砸了! – claymore1977