アプリケーションに機能があり、ユーザーがボタンをクリックすると、最寄りのオフィスが表示されます。機能はスウェーデンの一部で機能しますが、スウェーデン北部では機能しません。try-catch ステートメントを使用して、null ポインター例外をキャッチします。ネットワークとロケーションをシャットダウンすると、エラー メッセージが表示されますが、スウェーデン北部ではメッセージは表示されず、アプリがクラッシュするだけです。私のコードはそこにあります。onFindOfficeClick () は単一の関数であり、独立しています。どうすればこの問題を解決できますか? デバッグを試みましたが、エラーが発生しません...どうすればよいかわかりません。xml ファイルからすべての座標を取得します。何か提案はありますか?
private void onFindOfficeClick() {
try {
LocationManager lm = (LocationManager)getSystemService(Service.LOCATION_SERVICE);
List<String> providersName = lm.getProviders(false);
if(providersName.size()>0){
Location location = lm.getLastKnownLocation(providersName.get(0));
float results [] = new float [1];
final double longitude = location.getLongitude();
final double latitude = location.getLatitude();
final int officeCount = mOfficesInfo.length;
double minDistance = 0;
int officeNum = 0;
for(int i=0; i<officeCount; i++){
Location.distanceBetween(latitude, longitude,
mOfficesInfo[i].getLatitude(), mOfficesInfo[i].getLongitude(), results);
if(i==0){
minDistance = results[0];
} else if(results[0]<minDistance){
minDistance=results[0];
officeNum = i;
}
}
int countryPosition = mCountries.indexOf(mOfficesInfo[officeNum].getCountry());
mCountrySpiner.setSelection(countryPosition);
mFindedOfficeName = mOfficesInfo[officeNum].getOfficeName();
mOfficesSpiner.setSelection(officeNum);
}
}
catch (NullPointerException e)
{
Toast.makeText(getApplicationContext(),"check your network and GP:s connections",Toast.LENGTH_SHORT).show();
}
}