Android异常 NullPointerException: Attempt to invoke virtual method int

时间:2025-04-21 09:50:01

异常详情

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)是否包含该字段,然后再从中取。