【发布时间】:2015-11-10 00:23:09
【问题描述】:
为什么我不知道,我犯了这个错误。程序之前运行。但是现在我犯了这个错误。谢谢你的帮助......
MenuActivity.java:
final Context context = this;
private LocationManager mLocationManager;
private String PROVİDER = LocationManager.GPS_PROVIDER;
private GoogleMap googleHarita;
Location mLocation;
public class MenuActivity extends FragmentActivity {
final Context context = this;
private static final int CAMERA_REQUEST = 1888;
TextView e_kor, b_kor, acikAdres;
Fragment harita;
RadarView mRadarView = null;
private LocationManager mLocationManager;
private String PROVİDER = LocationManager.GPS_PROVIDER;
private GoogleMap googleHarita=null;
Location mLocation = null;
TelephonyManager telemamanger;
String getSimSerialNumber;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
// telefon numarası nesnesi
telemamanger = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
e_kor = (TextView) findViewById(R.id.enlmkor);
b_kor = (TextView) findViewById(R.id.bylmkor);
acikAdres = (TextView) findViewById(R.id.acikAdres);
// resim metodu
mRadarView = (RadarView) findViewById(R.id.radarView);
// radar çalıştırma metodları
mRadarView.setShowCircles(true);
mRadarView.startAnimation();
// Konum-lokasyon kodları
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
final Location mLocation = mLocationManager
.getLastKnownLocation(PROVİDER);
if (googleHarita == null) {
googleHarita = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.haritafragment)).getMap();
if (googleHarita != null) {
LatLng koordinat = new LatLng(mLocation.getLatitude(),
mLocation.getLongitude());
googleHarita.addMarker(new MarkerOptions().position(koordinat));
googleHarita.moveCamera(CameraUpdateFactory.newLatLngZoom(
koordinat, 10));
}
}
showLocation(mLocation);
new GetAddressTask().execute(mLocation);
}
// Lokasyon işlemleri
private void showLocation(Location location) {
if (location == null) {
Toast.makeText(getApplicationContext(), "Konum Bulunamadı",
Toast.LENGTH_SHORT).show();
} else {
e_kor.setText(location.getLatitude() + "");
b_kor.setText(location.getLongitude() + "");
}
}
@Override
protected void onPause() {
super.onPause();
mLocationManager.removeUpdates(listener);
}
@Override
protected void onResume() {
super.onResume();
mLocationManager.requestLocationUpdates(PROVİDER, 0, 0, listener);
}
// Konum listener
private LocationListener listener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
showLocation(location);
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};
public class GetAddressTask extends AsyncTask<Location, Void, String> {
@Override
protected String doInBackground(Location... locations) {
Geocoder geocoder = new Geocoder(MenuActivity.this);
Location location = locations[0];
List<Address> addresses;
String addrStr = null;
try {
addresses = (List<Address>) geocoder.getFromLocation(
location.getLatitude(), location.getLongitude(), 5);
Address addr = addresses.get(0);
addrStr = addr.getAddressLine(0) + ", " + addr.getAdminArea()
+ ", " + addr.getCountryName();
} catch (IOException e) {
e.printStackTrace();
}
return addrStr;
}
@Override
protected void onPostExecute(String result) {
acikAdres.setText(result);
}
}
我的原木猫:
11-10 02:20:50.508: E/AndroidRuntime(29376): FATAL EXCEPTION: main
11-10 02:20:50.508: E/AndroidRuntime(29376): Process: com.gpsacilbildirim, PID: 29376
11-10 02:20:50.508: E/AndroidRuntime(29376): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gpsacilbildirim/com.gpsacilbildirim.MainActivity}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gpsacilbildirim/com.gpsacilbildirim.MenuActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference
11-10 02:20:50.508: E/AndroidRuntime(29376): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2658)
11-10 02:20:50.508: E/AndroidRuntime(29376): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
11-10 02:20:50.508: E/AndroidRuntime(29376): at android.app.ActivityThread.access$900(ActivityThread.java:172)
11-10 02:20:50.508: E/AndroidRuntime(29376): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
【问题讨论】:
-
您似乎没有处理
onCreate()中mLocation是null的情况。