getSystemService(Context.Location_SERVICE)导致java.lang.NullPointerException

时间:2014-05-23 07:42:14

标签: java android

我目前正在使用MapFragment创建一个包含Google地图的应用程序。为了让用户可以看到位置更改,我尝试在MapFragment的onCreate方法中创建一个LocationManager对象。问题是应用程序崩溃,它是由java.lang.NullPointerException引起的。我的初始化看起来像这样:

locationManager = (LocationManager)parent.getSystemService(Context.LOCATION_SERVICE);

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);

-parent是MapFragment正在执行的actitivy。

我的权限如下:

 <permission
        android:name="com.example.tipspromenad.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.example.tipspromenad.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

有什么不对?

汉克

1 个答案:

答案 0 :(得分:7)

我猜你的parent位于NULL,所以你得到NPE

locationManager = (LocationManager)parent.getSystemService(Context.LOCATION_SERVICE);

试试这种方式

locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
Fragment

中的