2011-10-03 121 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