我目前正在使用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" />
有什么不对?
汉克
答案 0 :(得分:7)
我猜你的parent
位于NULL
,所以你得到NPE
locationManager = (LocationManager)parent.getSystemService(Context.LOCATION_SERVICE);
试试这种方式
locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
Fragment
中的