异常详情
05-23 16:15:41.672 4206 6875 E AndroidRuntime: : Attempt to invoke virtual method 'int ()' on a null object reference
05-23 16:15:41.672 4206 6875 E AndroidRuntime: at $(:310)
05-23 16:15:41.672 4206 6875 E AndroidRuntime: at (:102)
05-23 16:15:41.672 4206 6875 E AndroidRuntime: at (:142)
05-23 16:15:41.672 4206 6875 E AndroidRuntime: at .run(:61)
相关代码
private static Map<String, Integer> downloadingFiles = null;
...
(, msgId);
...
int msgid = (serverFileName);
问题原因:
@1. 当serverFileName为null时,(Object key)会产生异常
if the specified key is null and this map does not permit null keys (optional)
@2. 当(serverFileName)为null时,会产生NullPointerException解决方法:
将如下代码
int msgid = downloadingFiles.get(serverFileName);
更改为:
public int getId(String serverFileName) {
if (null != serverFileName && (serverFileName)) {
return downloadingFiles.get(serverFileName);
}
return 0;
}
不要直接调用(Object key)方法,应该先判断(String key)是否包含该字段,然后再从中取。