从服务上下文获取LocationManager时的Android NullPointerException

时间:2015-09-05 05:27:28

标签: java android nullpointerexception locationmanager

我得到了:

 Caused by: java.lang.NullPointerException
        at android.content.ContextWrapper.getSystemService(ContextWrapper.java:423)

当app:

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

抛出异常的代码是:

421:    @Override
422:    public void grantUriPermission(String toPackage, Uri uri, int modeFlags) {
423:        mBase.grantUriPermission(toPackage, uri, modeFlags);
424:    }

(调试器在调用中显示mBase为空。)

我查了一下:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

并调试:

context={MyService@830033501600}

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您似乎必须使用“活动”上下文来获取位置管理器。

您的context是应用程序上下文吗?尝试将其更改为“活动”。

编辑:

如果您在服务中,请在getSystemService

中运行onCreate()

答案 1 :(得分:0)

不知何故,你需要扩展Activity类,你将使用getSystemService方法

相关问题