无法在onCreate()中调用方法

时间:2011-05-20 12:24:40

标签: android

我的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()中成功调用它。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

首先,您需要学习在Eclipse中使用adb logcat,DDMS或DDMS透视图来检查LogCat并查看与您的错误相关联的堆栈跟踪。

我的猜测是你因NullPointerException而崩溃,因为location可能是null。调用requestLocationUpdates()后,您可能需要几秒到几分钟才能获得一个位置。如果确实如此,请修改您的应用以删除getLastKnownLocation()来电并将updateWithNewLocation()来电转移到onLocationChange()中的MyLocationUpdater方法。