2015-11-01 146 views
3

当我启动一个IntentService时,我的应用程序崩溃。我试图让intentservice读取加速度计数据。即使屏幕关闭,我也打算使用部分唤醒锁来保持它。 因此,intentService从sensorEventListener扩展到 我在清单中添加了COURSE_LOCATION和FINE_LOCATION权限。 这里是我的堆栈跟踪当我启动一个IntentService时,Android应用程序崩溃

java.lang.RuntimeException: Unable to start service [email protected] with Intent { cmp=com.shreeasish.safer/.SensorIntentService }: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Message android.app.IntentService$ServiceHandler.obtainMessage()' on a null object reference 
      at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2941) 
      at android.app.ActivityThread.access$2100(ActivityThread.java:155) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1415) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:135) 
      at android.app.ActivityThread.main(ActivityThread.java:5343) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:372) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700) 
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Message android.app.IntentService$ServiceHandler.obtainMessage()' on a null object reference 
      at android.app.IntentService.onStart(IntentService.java:116) 
      at android.app.IntentService.onStartCommand(IntentService.java:130) 
      at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2924) 
            at android.app.ActivityThread.access$2100(ActivityThread.java:155) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1415) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:135) 
            at android.app.ActivityThread.main(ActivityThread.java:5343) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:372) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700) 

这是我的ServiceIntent类

public class SensorIntentService extends IntentService { 

    private Sensor mAccelerometer; 
    private SensorManager mSensorManager; 
// public static final String BROADCAST_ACTION = "com.shreeasish.Safer.SERVICE_BROADCAST"; 
// public static final String ACCELEROMETER_DATA = "com.shreeasish.Safer.ACCELEROMETER_DATA"; 

    @Override 
    public void onCreate() { 

    } 



    public SensorIntentService(String name) { 
     super(name); 
    } 

    public SensorIntentService() { 
     super("com.shreeasish.Safer"); 
    } 

    @Override 
    protected void onHandleIntent(Intent intent) { 

    } 

// @Override 
    public void onSensorChanged(SensorEvent event) { 

    } 

// @Override 
    public void onAccuracyChanged(Sensor sensor, int accuracy) { 

    } 


} 

我还没有添加任何代码呢。所以它不应该崩溃吗?

这是我使用启动它

Intent mServiceIntent = new Intent(getActivity(), SensorIntentService.class); 
       getActivity().startService(mServiceIntent); 

回答

13

您需要调用父类的onCreate()在你的SensorIntentService代码:

@Override 
public void onCreate() { 
    super.onCreate(); 
} 
相关问题