避免android中可能出现的空值

避免android中可能出现的空值,android,forceclose,Android,Forceclose,我可能遇到一个可能的空值,我不希望我的程序崩溃。这种情况只发生在一小部分用户身上,我不完全确定原因,但我知道代码的哪一部分在这样做。基本上,isAcheved()是一个应该返回布尔值的检查,但在少数情况下,它返回的是null。这是scoreloop库的一部分,我怀疑这个bug可能与他们的代码有关 有没有办法检查这个值是否返回空值,如果是这样的话,直接跳过这段代码,而不是强制关闭并退出程序 if (_achievements[ltc].isAchieved()) { // Do stuff

我可能遇到一个可能的空值,我不希望我的程序崩溃。这种情况只发生在一小部分用户身上,我不完全确定原因,但我知道代码的哪一部分在这样做。基本上,
isAcheved()
是一个应该返回布尔值的检查,但在少数情况下,它返回的是null。这是scoreloop库的一部分,我怀疑这个bug可能与他们的代码有关

有没有办法检查这个值是否返回空值,如果是这样的话,直接跳过这段代码,而不是强制关闭并退出程序

if (_achievements[ltc].isAchieved()) {
   // Do stuff for 99.9% of users here, but skip if .isAchieved() would force close
}

你考虑过这样做吗?

捕捉异常?(不建议捕获运行时异常,您似乎知道这一点,但这是一个选项)您还可以执行if语句。即“如果为null,则不”。这不会给我一个检查程序的NullPointerException吗?我无法检查它,因为它只发生在少数用户身上,我无法重现错误。如果函数实际返回null,它不会给出异常。除此之外。否则,您必须使用try-catch。
        boolean checker=false;
        try{
            checker=_achievements[ltc].isAchieved();
        }
        catch(NullPointerException e){
        }
        if (checker) {
           //content
        }