GcmNetworkManager调度问题

use*_*821 13 android scheduling job-scheduling periodic-task gcm-network-manager

我在我的应用程序中使用GcmNetworkManager进行定期和任务任务执行之一.我收到这两个错误,无法弄清楚原因.实施是正确的,因为我无法在登台时重现这些问题.

Fatal Exception: java.lang.RuntimeException: Package manager has died
   at android.app.ApplicationPackageManager.queryIntentServicesAsUser(ApplicationPackageManager.java:700)
   at android.app.ApplicationPackageManager.queryIntentServices(ApplicationPackageManager.java:706)
   at com.google.android.gms.gcm.GcmNetworkManager.zzdi(Unknown Source)
   at com.google.android.gms.gcm.GcmNetworkManager.schedule(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

&

Caused by java.lang.IllegalArgumentException: There is no GcmTaskService component registered within this package. Have you extended GcmTaskService correctly?
   at com.google.android.gms.common.internal.zzx.zzb(Unknown Source)
   at com.google.android.gms.gcm.GcmNetworkManager.zzdi(Unknown Source)
   at com.google.android.gms.gcm.GcmNetworkManager.schedule(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

谢谢

PS:设备具有8.1+的播放服务.

Mri*_*ank 3

1.) 您是否在清单文件中声明了您的服务,如下所示:

<service android:name="MyTaskService"
          android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"
          android:exported="true">
          <intent-filter>
              <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY"/>
          </intent-filter>
 </service>
Run Code Online (Sandbox Code Playgroud)

确保您已包含权限BIND_NETWORK_TASK_SERVICE

2) 确保您的服务正在扩展 GcmTaskService 并且正在实现onRunTask

参考:https ://developers.google.com/android/reference/com/google/android/gms/gcm/GcmTaskService