Android 定位程序中的崩溃
根据书中的教程制作应用程序,但是有一些错误导致我的程序在未知的地方崩溃:logCat没有给出错误消息 所以我的位置类的代码是`:Android 定位程序中的崩溃,android,crash,geolocation,gps,location,Android,Crash,Geolocation,Gps,Location,根据书中的教程制作应用程序,但是有一些错误导致我的程序在未知的地方崩溃:logCat没有给出错误消息 所以我的位置类的代码是`: import android.app.Activity; import android.content.Context; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
private LocationManager myLocationManager;
private LocationListener myLocationListener;
private TextView myLatitude, myLongitude;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myLatitude = (TextView)findViewById(R.id.textView1);
myLongitude = (TextView)findViewById(R.id.textView2);
myLocationManager = (LocationManager)getSystemService(
Context.LOCATION_SERVICE);
myLocationListener = new MyLocationListener();
myLocationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
0,
0,
myLocationListener);
//Get the current location in start-up
myLatitude.setText(String.valueOf(
myLocationManager.getLastKnownLocation(
LocationManager.GPS_PROVIDER).getLatitude()));
myLongitude.setText(String.valueOf(
myLocationManager.getLastKnownLocation(
LocationManager.GPS_PROVIDER).getLongitude()));
}
private class MyLocationListener implements LocationListener{
public void onLocationChanged(Location argLocation) {
// TODO Auto-generated method stub
myLatitude.setText(String.valueOf(
argLocation.getLatitude()));
myLongitude.setText(String.valueOf(
argLocation.getLongitude()));
}
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
public void onStatusChanged(String provider,
int status, Bundle extras) {
// TODO Auto-generated method stub
}
};
}
我正在向清单文件添加下一个权限:
在Galaxy选项卡上启动应用程序后,我崩溃了,但几秒钟后,工具栏上出现了一个飞溅的图标“GPS”
来自调试程序的代码(如果有帮助)
DalvikVM[localhost:8624]
线程[main](挂起(异常运行时异常))
ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord,Intent)行:2663
ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord,Intent)行:2679
ActivityThread.access$2300(ActivityThread,ActivityThread$ActivityRecord,Intent)行:125
ActivityThread$H.handleMessage(消息)行:2033
ActivityThread$H(处理程序)。dispatchMessage(消息)行:99
Looper.loop()行:123
ActivityThread.main(字符串[])行:4627
invokenactive(Object,Object[],Class,Class[],Class,int,boolean)行:不可用[本机方法]
调用(对象,对象…)行:521
ZygoteInit$MethodAndArgsCaller.run()行:868
颧骨单位。主(字符串[])行:626
NativeStart.main(字符串[])行:不可用[本机方法]
螺纹[活页夹螺纹#2](运行)
螺纹[活页夹螺纹#1](运行)
这是以下几行:
//Get the current location in start-up
myLatitude.setText(String.valueOf(
myLocationManager.getLastKnownLocation(
LocationManager.GPS_PROVIDER).getLatitude()));
导致空指针
在触发onLocationChanged()之前,最后一个已知位置将为空。请在此处发布错误代码。但是,当我清除此代码崩溃时,不要停止=(请告诉我在这种情况下,对于代码的正常工作,会发生什么变化
//Get the current location in start-up
myLatitude.setText(String.valueOf(
myLocationManager.getLastKnownLocation(
LocationManager.GPS_PROVIDER).getLatitude()));