我的Android应用程序出现问题。如果我在onCreate()中放入一个方法,整个应用程序将崩溃。
这是代码
private LocationManager locationManager = null;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Intent i3 = new Intent();
i3.setClass(mainMenu.this, police.class);
i3.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mainMenu.this.startActivityForResult(i3,0);
}
});
locationManager = (LocationManager)mainMenu.this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000 , 0 , new MyLocationUpdater());
Location location = locationManager.getLastKnownLocation(locationManager.GPS_PROVIDER);
updateWithNewLocation(location);
}
updateWIthNewLocation(位置位置)方法在onCreate()之外; 我无法在onCreate()中成功调用它。
有什么想法吗?
答案 0 :(得分:0)
首先,您需要学习在Eclipse中使用adb logcat
,DDMS或DDMS透视图来检查LogCat并查看与您的错误相关联的堆栈跟踪。
我的猜测是你因NullPointerException
而崩溃,因为location
可能是null
。调用requestLocationUpdates()
后,您可能需要几秒到几分钟才能获得一个位置。如果确实如此,请修改您的应用以删除getLastKnownLocation()
来电并将updateWithNewLocation()
来电转移到onLocationChange()
中的MyLocationUpdater
方法。