기본적으로 Eclipse의 문제인지, 휴대 전화의 GPS인지 또는 내 앱 코드인지는 알 수 없습니다.Android GPS null 포인터 예외
문제 : 휴대 전화를 다시 시작하고 앱을 실행하면 런타임에 충돌이 발생합니다. 오류는 NullPointer입니다 (줄 번호가 제공되지 않음). 하지만 GPS를 검사하고 응용 프로그램을 다시 실행하는 onCreate()에서 두 줄을 제거하면 작동합니다. 그런 다음 해당 행을 다시 추가하면 앱이 작동합니다. 기본적으로 코드는 괜찮지 만 전화가 다시 시작된 후 처음 실행될 경우 앱이 다운됩니다.
if (new LocTools(this).checkGPS() == true) { // new method, checks if Gps is active and returns boolean.
LatLng ll = new LocTools(this).getMyLocation();
if (ll != null) {
Toast.makeText(this, "LatLng: "+ll, Toast.LENGTH_SHORT).show();
// ll is NOT null
//LocTools.goToLocation(map,ll,5,true);
} else {
Toast.makeText(this, "Gps error", Toast.LENGTH_SHORT).show();
}
}
은 내가 LocTools.goToLocation 라인에서 주석과 LatLng를가 null이었다 있는지 확인하기 위해 토스트를 삽입 :
좋아
편집이 내가 한 일을한다 : 여기에 몇 가지 관련 코드입니다 . 결과 : 그렇지 않았습니다. 그럼 난 LocTools.goToLocation을 주석 처리, 그래서 코드는 다음과 같이 보았다 :
...
if (ll != null) {
Toast.makeText(this, "LatLng: "+ll, Toast.LENGTH_SHORT).show();
LocTools.goToLocation(map,ll,5,true);
}
...
을 그리고 응용 프로그램을 실행하고, 런타임에 추락 - NullPointer! 나는 왜 이렇게하는지 이해하지 못합니다. NullPointer가 없습니다 ...
먼저 체크가 null입니다. 네가 원하는대로해라. – Tugrul
그래, 문제는 LocTools.getMyLocation() 메소드 내부에 있습니다. GPS를 사용하더라도 LocationManager가 처음으로 앱을 다시 시작한 후 Null을 반환하는 이유를 확인하려고합니다. –
내 대답을 확인하십시오. – Tugrul