GPS和网络提供商始终返回null

时间:2016-03-12 08:45:43

标签: android location

当我尝试将位置发送到服务器时,我的应用程序一直崩溃。

我的主要活动是 -

struct node *temp = head;
struct node *temp2 = head;
int len1 = 0, len2 = 0;

// Count nodes
while (temp != NULL) {
    len1++;
    temp = temp->next;
}

if (n >= len1)
    return;

while (temp2 != NULL) {
    if (len2 == len1 - n - 1) {
        printf("%d", temp2->data);
        break;
    }
    len2++;
    temp2 = temp2->next;
}

在此之后,应用程序被发送到我必须将数据上传到服务器的活动。一旦我单击上传按钮,应用程序崩溃说doInBackground()中存在问题。我尝试在日志中显示位置,它返回null。

1 个答案:

答案 0 :(得分:1)

您的位置代码搞砸了。你调用requestLocationUpdates,但是你不等它调用onLocationChanged-你假设它是即时的。它不是。然后调用getLastLocation,它将在90%的时间内返回null,因为它还没有机会实际启动位置代码(位置发现需要时间,即使网络更快)。将其撕掉,只需调用requestLocationUpdates替换它,然后等待那些实际返回的位置 - 之后再调用getLastLocation。事实上,只要忘记存在该功能,你可能会更好。