【发布时间】:2014-03-21 19:24:21
【问题描述】:
我是 Android 新手,需要帮助来解决这个问题。我有一个实现 LocationListener 的服务。当应用程序崩溃时,我收到以下错误。请解释我应该对我的代码进行哪些更改。我参考了许多 LocationListener 和 Services 教程,但无法完全弄清楚发生了什么。请逐步消除我的疑惑。我正在发布我的代码和错误日志:
新的错误日志:
03-22 01:42:20.249: E/AndroidRuntime(6537): FATAL EXCEPTION: main
03-22 01:42:20.249: E/AndroidRuntime(6537): java.lang.NullPointerException
03-22 01:42:20.249: E/AndroidRuntime(6537): at com.example.broadcast.Ser.onLocationChanged(Ser.java:131)
03-22 01:42:20.249: E/AndroidRuntime(6537): at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:263)
03-22 01:42:20.249: E/AndroidRuntime(6537): at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:196)
03-22 01:42:20.249: E/AndroidRuntime(6537): at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:212)
03-22 01:42:20.249: E/AndroidRuntime(6537): at android.os.Handler.dispatchMessage(Handler.java:99)
03-22 01:42:20.249: E/AndroidRuntime(6537): at android.os.Looper.loop(Looper.java:137)
03-22 01:42:20.249: E/AndroidRuntime(6537): at android.app.ActivityThread.main(ActivityThread.java:4960)
03-22 01:42:20.249: E/AndroidRuntime(6537): at java.lang.reflect.Method.invokeNative(Native Method)
03-22 01:42:20.249: E/AndroidRuntime(6537): at java.lang.reflect.Method.invoke(Method.java:511)
03-22 01:42:20.249: E/AndroidRuntime(6537): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
03-22 01:42:20.249: E/AndroidRuntime(6537): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
03-22 01:42:20.249: E/AndroidRuntime(6537): at dalvik.system.NativeStart.main(Native Method)
这是我的(新)服务代码:
public class Ser extends Service implements LocationListener{
public Location getLocation(String provider) {
if (locationManager.isProviderEnabled(provider)) {
locationManager.requestLocationUpdates(provider,
MIN_TIME_FOR_UPDATE, MIN_DISTANCE_FOR_UPDATE, this);
if (locationManager != null) {
location = locationManager.getLastKnownLocation(provider);
double latitude = location.getLatitude();
double longitude = location.getLongitude();
String l1=String.valueOf(latitude);
String l2=String.valueOf(longitude);
}
}
return location;
}
}
public void onLocationChanged(Location location) {
if(location!=null)
{
double latitude =location.getLatitude();
double longitude = location.getLongitude();
Log.i("msg","in locationchanged");
}
}
【问题讨论】:
-
如果
Ser,第151行是什么?
标签: android service forceclose locationlistener