0

你能帮助我吗。我的代码中有一个错误,在空对象引用上带有布尔 isFromMockProvider()。当我的提供商上的 gps 速度慢时会出现此问题,你们能帮我处理错误吗

这是我的代码:

GetLocation getLocation = new GetLocation(getApplicationContext());
        Location location = getLocation.getLocation();
        boolean isMockLocation = location.isFromMockProvider();
        if (isMockLocation==true){
            showDialog();
        }
        else {
            tesmock.setText("No Use Mock ");
        }
4

2 回答 2

0

您的问题缺乏相当多的上下文,因此这涉及一些猜测工作:

可能发生的情况是,当您的 gps 很慢时,getLocation.getLocation() 返回 null 而不是 Location 对象,因此尝试调用 location.isFromMockProvider() 会引发 NullPointerException。

解决此问题的最佳方法是在调用该函数之前检查 location 是否为空:

Location location = getLocation.getLocation();
if(location!=null){
    boolean isMockLocation = location.isFromMockProvider();
    //the stuff you then do with isMockLocation
} else{
    //display an error message or something saying the GPS is too slow
}
于 2022-01-23T16:44:14.243 回答
0

是这样的吗?对不起,因为我是初学者

 Location location = getLocation.getLocation();
        if(location!=null){
            boolean isMockLocation = location.isFromMockProvider();
            if (isMockLocation==true){
                showDialog();
            }
            else {
                tesmock.setText("No Use Mock ");
            }
        } else{
            //display an error message or something saying the GPS is too slow
        }
于 2022-01-23T16:55:36.467 回答