4

尝试配置推送通知时,我收到以下错误:无法解析意图服务的Android

06-07 01:05:59.735 18708-18708/com.ebr.apps.ebr.development E/FirebaseInstanceId: Failed to resolve target intent service, skipping classname enforcement 
06-07 01:05:59.735 18708-18708/com.ebr.apps.ebr.development E/FirebaseInstanceId: Error while delivering the message: ServiceIntent not found. 

我有不同口味的gradle中:

我的代码包的名字是:com.ebr。 apps.ebr 我的产品风味包:com.ebr.apps.ebr.development

我已经把谷歌,services.json在应用/ src目录/发展

清单:

<permission 
     android:name="${applicationId}.permission.C2D_MESSAGE" 
     android:protectionLevel="signature"/> 

    <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE"/> 

     <receiver 
      android:name="com.google.android.gms.gcm.GcmReceiver" 
      android:exported="true" 
      android:permission="com.google.android.c2dm.permission.SEND" > 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
       <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 
       <category android:name="${applicationId}" /> 
      </intent-filter> 
     </receiver> 

     <service 
      android:name=".GCM.PushNotificationService" 
      android:exported="false"> 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE"/> 
      </intent-filter> 
     </service> 

我已经看过很多例子,但仍然得到这个错误。

回答

7

我找到了解决方案,问题在于Instabug GCMListener与我的GCMListener冲突。我设置了我的gcm监听器的优先级,并开始工作。

<service 
    android:name=".GCM.PushNotificationService" 
    android:exported="false"> 
    <intent-filter android:priority="10000"> 
     <action android:name="com.google.android.c2dm.intent.RECEIVE"/> 
    </intent-filter> 
</service> 
+0

您应该将其标记为已接受的答案。 :) –

+0

该文档显示“该值必须大于-1000且小于1000.” “10000”是故意的? https://developer.android.com/reference/android/content/IntentFilter.html#SYSTEM_HIGH_PRIORITY – shkschneider

2

如果从搜索引擎过来:你可能也遇到了这个bug,这也影响了当前版本com.google.android.gms:发挥服务-GCM:9.8.0

https://github.com/firebase/quickstart-android/issues/72

这是不可能重现的错误,并没有完全了解情况如何发生,但你可能有兴趣跟随线程。