0

我的申请有问题。当您尝试获取我的 GPS 位置时,我的应用程序向我抛出 NullPointerException,我启动了位置管理器和位置侦听器。Context 是之前导入的 MainAplication 上下文

我的代码:

mLocationManager=(LocationManager)MainActivity.context.getSystemService(Context.LOCATION_SERVICE);
    //mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 15000, 0, loclistener);

    if(mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)==true){

        //skt.MostrarToast(MainActivity.context, "GPS Habilitado...");
        Log.i("Manada3", "GPS habilitado");
        gpsEn=true;
        MainActivity.looperStatus=true;

    }else{
        //skt.MostrarToast(MainActivity.context, "GPS Deshabilitado...");
        //skt.MostrarToast(MainActivity.context, "Favor habilitar GPS...");
        Log.i("Manada3", "GPS Deshabilitado");
        Toast.makeText(getBaseContext(), "GPS DESHABILITADO",Toast.LENGTH_SHORT).show();
        gpsEn=false;
        MainActivity.looperStatus=false;
    }

    if(gpsEn==true){

        //locLatitud=mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

        //Log.i("Manada3", "locLatitud:"+locLatitud);
        //mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, loclistener);

        loclistener=new LocationListener() {

            @Override
            public void onLocationChanged(Location location) {
                Log.i("Manada3", "onLocationChanged 1");
                if(MainActivity.looperStatus==false){
                    mLocationManager.removeUpdates(loclistener);
                    MainActivity.looperStatus=false;
                }
                // TODO Auto-generated method stub
                Log.i("Manada3","GPSLoggerService.onLocationChanged()");
                locLatitud2 = location.getLatitude();
                locLongitud2 = location.getLongitude();
                st_latitud=String.valueOf(locLatitud2);
                st_longitud=String.valueOf(locLongitud2);
                Log.i("Manada3", "Coordenadas:"+st_latitud+" "+st_longitud);

                //soquet.ans2.notify();
            }
            @Override
            public void onProviderDisabled(String arg0) {
                // TODO Auto-generated method stub
                Log.i("Manada3","Provider Disabled");
                stopSelf();
                //Looper.myLooper().quit();
                loclistener=null;
            }
            @Override
            public void onProviderEnabled(String arg0) {
                // TODO Auto-generated method stub
                Log.i("Manada3","Provider Enabled");
            }
            @Override
            public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
                // TODO Auto-generated method stub
                Log.i("Manada3","Status Changed");
            }


        };


        if(mLocationManager==null){
            mLocationManager=(LocationManager)MainActivity.context.getSystemService(Context.LOCATION_SERVICE);
        }
        mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 15000, 0, loclistener,Looper.getMainLooper());

        locLatitud2 = locLatitud.getLatitude();
        locLongitud2 = locLatitud.getLongitude();
        Log.i("Manada3", "Coordenadas:"+locLatitud2+" "+locLongitud2);

    }else{
        Log.i("Manada3","Error 300");
    }

}

我的 Logcat 信息:

    07-28 13:05:26.678: E/AndroidRuntime(5138): FATAL EXCEPTION: main
    07-28 13:05:26.678: E/AndroidRuntime(5138): java.lang.NullPointerException
    07-28 13:05:26.678: E/AndroidRuntime(5138):     at com.example.manada4.PruebaService.startLoggingService(PruebaService.java:222)
    07-28 13:05:26.678: E/AndroidRuntime(5138):     at com.example.manada4.PruebaService.access$0(PruebaService.java:148)
    07-28 13:05:26.678: E/AndroidRuntime(5138):     at com.example.manada4.PruebaService$IncomingHandler.handleMessage(PruebaService.java:86)
    07-28 13:05:26.678: E/AndroidRuntime(5138):     at android.os.Handler.dispatchMessage(Handler.java:99)
    07-28 13:05:26.678: E/AndroidRuntime(5138):     at android.os.Looper.loop(Looper.java:137)
    07-28 13:05:26.678: E/AndroidRuntime(5138):     at android.app.ActivityThread.main(ActivityThread.java:4921)
    07-28 13:05:26.678: E/AndroidRuntime(5138):     at java.lang.reflect.Method.invokeNative(Native Method)
    07-28 13:05:26.678: E/AndroidRuntime(5138):     at java.lang.reflect.Method.invoke(Method.java:511)
    07-28 13:05:26.678: E/AndroidRuntime(5138):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
    07-28 13:05:26.678: E/AndroidRuntime(5138):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
    07-28 13:05:26.678: E/AndroidRuntime(5138):     at dalvik.system.NativeStart.main(Native Method)
4

1 回答 1

1

您是否在清单文件中添加了权限?

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
于 2013-07-28T19:27:52.503 回答