String calculateDistanceMetric(double loclat, double loclong)
{
Log.i("Metric", String.valueOf(loclat));
Log.i("Metric", String.valueOf(loclong));
Location destloc = new Location(provider);
destloc.setLatitude(loclat);
destloc.setLongitude(loclong);
Log.i("Metric", "1");
if (calcloc.distanceTo(destloc) > 100) ////////here is where the code breaks
{
Log.i("Metric", "2");
float round = calcloc.distanceTo(destloc);
Log.i("Metric", "3");
DecimalFormat df = new DecimalFormat("##.#");
Log.i("Metric", "4");
distanceUnit = "KM";
Log.i("Metric", "5");
return String.valueOf(round/1000);
}
else
{
Log.i("Metric", "6");
distanceUnit = "Meters";
Log.i("Metric", "7");
return String.valueOf(calcloc.distanceTo(destloc));
}
}
nullpointerexception が発生するのはなぜですか? loclat と loclong の値は有効で、destloc は初期化されています。なぜこれが原因でクラッシュするのか、考えがつきませんでした。また、可能であれば、2点間の距離を計算する他の方法を提案してください(distanceBetweenについてはすでに知っています)